javascript - 为什么 IsNaN(x) 与 x == NaN 不同,其中 x = NaN

标签 javascript nan

为什么这两者不同?

var x = NaN; //e.g. Number("e");
alert(isNaN(x)); //true (good)
alert(x == NaN); //false (bad)

最佳答案

没有等于NaN。任何比较都将始终为 false

在严格比较算法和抽象比较算法中,如果类型相同,并且任一操作数为 NaN,则结果将为 false

If Type(x) is Number, then

  • If x is NaN, return false.
  • If y is NaN, return false.

在抽象算法中,如果类型不同,并且 NaN 是其中一个操作数,那么另一个操作数最终将被强制转换为数字,并将我们带回场景如上所述。

关于javascript - 为什么 IsNaN(x) 与 x == NaN 不同,其中 x = NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14986361/

相关文章:

javascript - 检查拖动的 div 是否位于正确的位置

javascript - 在 Angular CLI 1.2.4 中导入 JS

python - Numpy 数组 : Extracting preferentially ordered values from array with Nans without padding?

javascript - D3 - 定位边缘抛出 NaN 错误

arrays - Matlab:如何使 [1 3 5] 变为 [1 nan 3 nan 5]

javascript - React,三元条件下的 Div 不呈现

javascript - 防止第三方调用内部 POST 方法

javascript - 预加载 bootstrap 字形图标

java - float 或 double 的 NaN 和 Infinity 如何存储在内存中?

python - 将新列添加到 pandas DataFrame 时的 NaN 值