与 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,任何人都可以编辑它。尽管如此,它仍然是一个非常可靠的来源。
不,不需要内置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)
这看起来真的很奇怪,让代码尽可能可读符合程序员的最大利益。
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |