null和undefined
console.log(null == undefined) //true
转型函数Boolean()
调用Boolean()可以将任何数据类型的值转为true或false,在if语句中会自动执行相应的Boolean转化,转化情况如下:
console.log(Boolean('123')) //true
console.log(Boolean('')) //false
console.log(Boolean(0)) //false
console.log(Boolean(NaN)) //false
console.log(Boolean(123)) //true
console.log(Boolean(null)) //false
console.log(Boolean(undefined)) //false
非数值转为数值
转型函数Number()可用于任何数据类型转为数值,parseInt()和parseFloat()专门用于把字符串转成数值。
Number()的转化情况如下:
console.log(Number(' 0123')) //123
console.log(Number('01.1')) //1.1
console.log(Number('0xf')) //15
console.log(Number('')) //0
console.log(Number('123ab')) //NaN
console.log(Number(null)) //0
console.log(Number(undefined))//NaN
parseInt()的转化情况如下:
console.log(parseInt('123ab')) //123
console.log(parseInt(' 123ab'))//123
console.log(parseInt('')) //NaN
console.log(parseInt(22.5)) //22
console.log(parseInt('0xf')) //15
console.log(parseInt('070')) //70
console.log(parseInt('070',8)) //56 按八进制解析
parseFloat()的转化情况如下:
console.log(parseFloat('123ab')) //123
console.log(parseFloat('')) //NaN
console.log(parseFloat('0xf')) //0
console.log(parseFloat('22.5.5')) //22.5
console.log(parseFloat('3.125e7')) //31250000
转换为字符串
数值、布尔值、对象、字符串值都有toString方法,但null和undefined没有。转型函数String()可以将任何类型的值转换为字符串,转换规则如下:
var num = 10
console.log(num.toString()) //'10' 默认十进制
console.log(num.toString(2)) //'1010' 指定二进制
console.log(num.toString(8)) //'12' 指定八进制
console.log(String(null)) //'null'
console.log(String(undefined)) //'undefined'