Number.isNaN() - JavaScript 编辑
Number.isNaN()
方法确定传递的值是否为 NaN
,并且检查其类型是否为 Number
。它是原来的全局 isNaN()
的更稳妥的版本。
语法
Number.isNaN(value)
参数
value
- 要检测是否为
NaN
的值。
返回值
描述
在 JavaScript 中,NaN
最特殊的地方就是,我们不能使用相等运算符(==
和 ===
)来判断一个值是否是 NaN
,因为 NaN == NaN
和 NaN === NaN
都会返回 false
。因此,必须要有一个判断值是否是 NaN
的方法。
和全局函数 isNaN()
相比,Number.isNaN()
不会自行将参数转换成数字,只有在参数是值为 NaN
的数字时,才会返回 true
。
示例
Number.isNaN(NaN); // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0) // true
// 下面这几个如果使用全局的 isNaN() 时,会返回 true。
Number.isNaN("NaN"); // false,字符串 "NaN" 不会被隐式转换成数字 NaN。
Number.isNaN(undefined); // false
Number.isNaN({}); // false
Number.isNaN("blabla"); // false
// 下面的都返回 false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN("37");
Number.isNaN("37.37");
Number.isNaN("");
Number.isNaN(" ");
Polyfill
Number.isNaN = Number.isNaN || function(value) {
return typeof value === "number" && isNaN(value);
}
规范
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Number.isnan | Standard | Initial definition. |
ECMAScript (ECMA-262) Number.isnan | Living Standard |
浏览器兼容性
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.相关链接
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论