我遇到了这个奇怪的问题。
为什么会这样?!应该是这样吗?
来自MDN 文档isNaN
:
与 JavaScript 中所有其他可能的值不同,不可能依赖相等运算符(== 和 ===)来确定一个值是否为 NaN,因为 NaN == NaN 和 NaN === NaN 都计算为错误的。因此,isNaN 函数的必要性。
改为使用isNaN
。
这背后的原因是应该保留数学规则。否则,就会有x == x + 1
if x
is NaN
,这对于 x 的任何其他值都不是真正的关系。
这就是为什么我们使用
isNaN(x)
似乎 x 是一个 NaN 对象,它不等于另一个
NaN is
像一个 SQL null
。它永远不等于任何东西,包括它自己。这就是为什么有特殊情况功能isNaN()
可以安全地测试NaN
' 的存在。