与Javascript中的NaN比较

时间:2012-05-28 17:01:38

标签: javascript parsing floating-point

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

enter image description here

为什么会这样?!应该这样吗?

4 个答案:

答案 0 :(得分:11)

来自MDN docs for isNaN

  

与JavaScript中的所有其他可能值不同,它是不可能的   依赖等于运算符(==和===)来判断是否   值是否为NaN,因为NaN == NaN和NaN === NaN都是评估的   为假。因此,isNaN函数的必要性。

改为使用isNaN

答案 1 :(得分:3)

背后的原因是应该保留数学规则。否则,如果x是NaN,则x == x + 1,对于x的任何其他值,该关系不为真。

答案 2 :(得分:2)

这就是我们使用

的原因
isNaN(x)

似乎x是一个NaN对象,并且它不会与另一个

进行比较

答案 3 :(得分:1)

NaN就像一个SQL null。它永远不会等于任何东西,包括它自己。这就是为什么特殊情况函数isNaN()可以安全地测试NaN的存在。