Javascript - 为什么NaN(1 + null)返回false?
问题描述:
嗯,我会通过Mozilla的javascript参考,并发现..Javascript - 为什么NaN(1 + null)返回false?
isNaN(1 + null) //false
isNaN(1 + undefined) //true
我无法理解这背后的原因。
答
从https://www.w3schools.com/js/js_type_conversion.asp,当null
转换为number
,就变成0。因此,0 + 1 = 1,它是有效的数量,因此isNaN
返回false
。
当undefined
转换为数字时,它变为NaN
。 Any Number + NaN = NaN
,所以isNaN
返回true。
+5
Upvoted,但不是w3schools,你可以参考更准确的东西:https://www.ecma-international.org/ecma-262/6.0/#sec-tonumber –
+0
@niki感谢您解释这一点。 –
'+ null === 0','+ undefined === NaN' – elclanrs
您是否尝试过仅打印'1 + null'的值?这是基本原因。 – JJJ