JavaScript,自动类型转换为“null”

时间:2016-12-06 04:49:19

标签: javascript

为什么 null ,自动类型转换与不同的二元运算符不同?

console.log(null * 8) // => 0 * 8 => 0
console.log(null == 0) // => false

因此,对于第二个语句, null 不会将类型强制转换为0。

2 个答案:

答案 0 :(得分:1)

那是因为,当你想要multiply时,两个操作数都必须是数字。因此,JS使用ToNumber抽象操作,ToNumber(null)为0。

当您compare时,值不需要是数字。比较非数值是有意义的。因此null不会被强制转换为数字。

答案 1 :(得分:0)

null被强制为+0进行数字操作。但是,==不是数字运算符,也没有进行类型强制,因此null == 0false