为什么 NaN 不等于 JavaScript 中的 NaN?[复制]

Why does not NaN equal to NaN in JavaScript? [duplicate]

提问人:Mutaal Khan 提问时间:1/5/2022 最后编辑:Mutaal Khan 更新时间:1/5/2022 访问量:206

问:

NaN(不是数字)。

  1. 为什么不等于()或严格等于()?NaN=====NaN
  2. 我们如何评估以下条件是否为真?
let x = NaN;
// equal(==)
if(x == NaN) {
    console.log(`${x} (Not a Number)`);
}
// strict equal(===)
if(x === NaN) {
    console.log(`${x} (Not a Number)`);
}
JavaScript 数字 nan 平等

评论

0赞 Sanooj T 1/5/2022
我认为它与无穷大 != 无穷大概念相同
0赞 VLAZ 1/5/2022
这里有一个简单的例子,为什么不等于自己。这是一个占位符值,用于转换为数字的东西,但是......不能表示为数字。有效的方法是,这干净利落地转换为数字。但是,例如不产生并产生.和.现在,显然是.那为什么会呢?在这两种情况下,它们都是数字,但原始非数字值不同。NaNNumber("123")123Number("apple")NaNNumber("orange")"apple" === "orange"falseNumber("apple") === Number("orange")trueNaN
1赞 VLAZ 1/5/2022
@SanoojT 需要注意的是,数学上无穷大并不相等(简单示例是所有整数都等于所有偶数 - 两者都是无限的,但不相等)。但是在 JS .这在数学上是不可靠的,但这就是价值的工作原理。Infinity === Infinity

答: 暂无答案