1. 任意数据类型转字符串
String(x)
String(1) //"1"
String(true) //"true"
String(null) //"null"
String(undefined) //"undefined"
String({}) //"[Object Object]"
x.toString()
(233).toString() //"233"
false.toString() //"false"
null.toString() // Uncaught TypeError: Cannot read property 'toString' of null at <anonymous>:1:6
undefined.toString() //Uncaught TypeError: Cannot read property 'toString' of undefined at <anonymous>:1:11
-
x + ''
(老司机用法)
1 + '' //"1"
true + '' //"true"
null + '' //"null"
undefined + '' //"undefined"
{} + '' // 0
var obj = {}
obj + '' //"[object Object]"
2. 任意数据类型转数字
Number(x)
Number(true) // 1
Number(null) // 0
Number('2233') // 2233
Number('') // 0
parseInt(x, 10)
parseInt('111', 10) // 111
parseInt('8267qw', 10) // 8267
parseFloat(x)
parseFloat('1.23a') // 1.23
-
x-0
(老司机用法)
'111' - 0 // 111
true - 0 // 1
undefined - 0 // NaN
null - 0 //0
+x
+ '-1' // -1
+ '111' // 111
+ null // 0
+ undefined // NaN
+ true // 1
3. 任意数据类型转布尔值
Boolean(x)
Boolean(111) // true
Boolean(null) // false
Boolean(undefined) // false
Boolean(NaN) // false
Boolean('') // false
-
!!x
(老司机用法)
!!111 // true
!!null // false
!!'' // false
4. 五个falsy值
0
NaN
''
null
undefined
falsy值是在Boolean上下文中认定可转换为false的值。