Javascript - 为什么NaN(1 + null)返回false?

问题描述:

嗯,我会通过Mozilla的javascript参考,并发现..Javascript - 为什么NaN(1 + null)返回false?

isNaN(1 + null) //false 
isNaN(1 + undefined) //true 

我无法理解这背后的原因。

+0

'+ null === 0','+ undefined === NaN' – elclanrs

+0

您是否尝试过仅打印'1 + null'的值?这是基本原因。 – JJJ

https://www.w3schools.com/js/js_type_conversion.asp,当null转换为number,就变成0。因此,0 + 1 = 1,它是有效的数量,因此isNaN返回false

undefined转换为数字时,它变为NaNAny Number + NaN = NaN,所以isNaN返回true。

+5

Upvoted,但不是w3schools,你可以参考更准确的东西:https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber –

+0

@niki感谢您解释这一点。 –