1.其他数据类型转String
新手常用方法:
调用toString()方法,但是注意null和undefined会报错。
(1) number
>var n=1
<n.toString()
<"1"
(2)boolean
>var b=true
>b.toString()
<"true"
(3)null
>var n=null
>n.toString()
*Uncaught TypeError:Cannot read property 'toString' of null at~
报错原因:null没有toString这个api,所以报错。
(4)undefined
>var n=undefined
>n.toString()
*Uncaught TypeError:Cannot read property 'toString' of null at~
报错原因:null没有toString这个api,所以报错。
(5)object
>var object={name:'frank'}
>object.toString()
<"[object Object]"
可以转变,但结果不是自己想要的,除非自己写一个函数。
老司机常用方法:
如果有一侧是字符串,那么加号会优先将另一侧非字符串变成字符串。
变字符串最常用的方法是与空字串相加。
例如:
>1+''
<"1"
>''+1
<"1"
>true+''
<"true"
>var obj={}
>obj+''
<"[object Object]"
>''+null
<"null"
>''+undefined
<"undefined"
>1+1
<2
>(1).toString()+'1'
<"11"
>1+'1'
<"11"
String函数:
>var n=1
>window.String(1)
<"1"
>window.String({})
<"[object Object]"
>window.String(true)
<"true"
>window.String(null)
<"null"
>window.String(undefined)
<"undefined"
2.其他数据类型转Boolean
新手常用方法:
>Boolean(1)
<true
>Boolean(2)
<true
>Boolean(0)
<false
>Boolean('')//空字符串是true
<false
>Boolean(' ')//空格是字符
<true
>Boolean('123456')
<true
>Boolean(null)
<false
>Boolean(null)
<false
>Boolean(undefined)
<false
>Boolean({})//只要是对象就是true
<true
>Boolean({name:'frank'})
<true
老手常用方法:
>!true
<false
>!!true
<true
>!!1
<true
>!!0
<false
>!!''
<false
>!!' '
<true
>!!{}
<true
>!!{name:'frank'}
<true
>!!null
<false
>!!undefined
<false
>!![]
<true
>!!function(){}
<true
五个falsy值:
0
NaN
' '
null
undefined
3.其他数据类型转number
'1'->1
Number('1')===1
parseInt('1',10)===1
parseFloat('1.23')===1.23
'1'-0===1
+'1'===1
-'-1'===-1
>parseInt('s')
<NaN
>parseInt('1s')
<1
>parseInt('011')
<11
>parseInt('011',8)
<9
>parseInt('011',10)
<11
注:详情请搜索饥人谷相关课程
网友评论