samionyoung
10/30/2018 - 10:42 AM

强制转换.js

null.toString() //报错
undefined.toString() //报错
(10).toString(2) // '1010'

String(null); // 'null'
String(undefined) // 'undefined'
String({a: 1}) //'[object Object]'
String([1, 2, 3]) // '1, 2, 3'


Number(null) //0
Number(undefined) //NaN
Number('') //0
Number('1234abc') //NaN
Number({a: 1}) // NaN
Number([1, 2, 3]) // NaN
Number([5]) // 5

Number(0x12) // 18

parseInt('') //NaN

//只有空字符串、null、undefined、+0、-0和NaN转为 布尔型 为false;
Boolean(undefined) // false
Boolean(null) // false
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false

Boolean(new Boolean(false)) //true


//自动转换为字符串
'5' + 1 // '51'
'5' + true // "5true"
'5' + false // "5false"
'5' + {} // "5[object Object]"
'5' + [] // "5"
'5' + function (){} // "5function (){}"
'5' + undefined // "5undefined"
'5' + null // "5null"