1. 转为数值
使用Number()方法
Number('122') // 122
Number([]) // 0
Number('') // 0
Number(null) // 0
Number({}) // NaN
Number(undefined) // NaN
使用parseInt()方法,把字符串转为数值。
parseInt的返回值只有两种可能,要么是一个十进制整数,要么是NaN
parseInt可接受第二个参数作为解析的进制,如果不写,默认为十进制
parseInt('12a') // 12
parseInt('11',10) // 11
parseInt('111a',2) // 7 按照二进制解析成十进制数,遇到不能解析的字符时停止
parseInt('011') // 11 字符串以0开头的以10进制解析
parseInt('0x11') // 17 以0x开头的以16进制解析
parseInt('1.24') // 1
使用parseFloat()方法,把字符串转为浮点数
parseFloat('1.23a') // 1.23
如果字符串里全是数字,可使用减号(-)或加号(+)来转换成数值
'1.23'-0 // 1.23
+'1.23' // 1.23
'2.3aaaa'-0 // NaN
2. 转为字符串
使用toString()方法
(12).toString() // '12' 数值转为字符串
true.toString() // 'true'
null.toString() // 报错
undefined.toString() // 报错
var a ={};
a.toString() // '[object Object]'
使用String()方法
String(22) // '22'
String({}) // '[object Object]'
String(null) // 'null'
String(undefined) // 'undefined'
使用加号(+)和空字符串
22 + ''// '22'
true + '' // 'true'
null + '' // 'null'
undefined + '' // 'undefined'
var obj = {name: 2};
obj + '' // '[object Object]'
3. 转为布尔
使用Boolean()方法
除以下几种为false,其他都为true
Boolean(0) // false
Boolean(NaN) // false
Boolean('') // false
Boolean(null) // false
Boolean(undefined) // false
使用!取反再取反
!!1 // true
!!'' // false
!!{name:2} // true