null empty 0, number 默认把其转化为0
下面几个都会转化为0:
Number()
Number(0)
Number('')
Number('0')
Number(false)
Number(null)
Number([])
Number([0])
console.log(Number("")); //0
console.log(Number(null)); //0
console.log(Number(undefined)); //NaN
console.log(parseInt("")); //NaN
console.log(parseInt(null)); //NaN
console.log(parseInt(undefined)); //NaN
console.log(null == 0); //false
console.log(undefined == 0); //false
双等号==两边两个值类型不同,需根据以下规则进行类型转换再比较:
1)如果一个是null,一个是undefined,那么相等
2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较
注意不要跟boolean()的转换弄混了 在boolean的转换中 "" , 0 , -0 , NaN , null , undefinded , 会被转换为false ,[]会转换为true.但在number()里 [] 会转换为0