Get to know MDN better
此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。
Number.isNaN() 静态方法判断传入的值是否为 NaN,如果输入不是数字类型,则返回 false。它是全局 isNaN() 函数更健壮的版本。
要测试是否为 NaN 的值。
如果给定值是一个值为 NaN 的数字,则返回布尔值 true,否则返回 false。
函数 Number.isNaN() 提供了一种方便的方法来检查值是否与 NaN 相等。请注意,你不能使用 == 或 === 运算符来测试值与 NaN 的相等性,因为与 JavaScript 中的其他值的比较不同,这些运算符在一个操作数为 NaN 时始终返回 false,即使另一个操作数也是 NaN。
由于在所有可能的 JavaScript 值中,x !== x 只有对于 NaN 才为真,因此 Number.isNaN(x) 也可以替换为 x !== x,尽管后者可读性较差。
与全局的 isNaN() 函数相反,Number.isNaN() 方法不会将参数强制转换为数字。这样可以安全地传入通常会转换为 NaN 但实际上与 NaN 不同的值。这也意味着只有等于 NaN 的 Number 类型的值才会返回 true。
Number.isNaN() 不会尝试将参数转换为数字,因此非数字总是返回 false。以下都返回 false:
全局 isNaN() 函数会将参数强制转换为数字:
| ECMAScript® 2027 Language Specification # sec-number.isnan |
启用 JavaScript 以查看此浏览器兼容性表。