《JS高级程序设计第4版》36页中说到,Number()函数遇到null返回0,遇到undefined返回NaN

发布时间 2023-11-09 09:43:43作者: 龙陌

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