javascript里的数据类型转换

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

你可能感兴趣的:(javascript里的数据类型转换)