我遇到了这个奇怪的问题。

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