isNaN() 真的有必要吗?

Meg*_*iae 3 javascript nan

根据MDN 第1关于isNaN(强调我的):

与 JavaScript 中所有其他可能的值不同,不可能依靠相等运算符(== 和 ===)来确定一个值是否为 NaN,因为 NaN == NaN 和 NaN === NaN 的计算结果都是错误的。因此, isNaN 函数的必要性

然而,由于它NaN是 JavaScript 中唯一一个与自身不相等的值,因此实际上可以依靠严格相等运算符来明确确定一个值是否为NaN

const value = NaN;
console.log(value === value)
Run Code Online (Sandbox Code Playgroud)

也就是说,对那个 MDN 句子的解释是什么?


PS:我确实理解 MDN 不是官方文档(即 ECMA),这很像 wiki,任何人都可以编辑它。尽管如此,它仍然是一个非常可靠的来源。

1:回答者所述,在发布此问题后,该段已被编辑。

Cer*_*nce 5

不,不需要内置isNaN函数。isNaN只是为了方便。当然,可以手动执行以下操作:

const isNaN = arg => arg !== arg
Run Code Online (Sandbox Code Playgroud)

对于您想要在其中执行此类操作的每个脚本,但这会很乏味。

或者,如果没有该功能,请考虑阅读以下代码:

if (parsedNumber !== parsedNumber) {
  // It's NaN
}
Run Code Online (Sandbox Code Playgroud)

这看起来真的很奇怪,让代码尽可能可读符合程序员的最大利益。