如何在 JavaScript 中检查 NaN
处理的时候 NaN
在你的项目中,了解什么是很重要的 NaNs
是以及它们是如何工作的。 NaN
是全局对象的不可写、不可配置、不可枚举的属性。 一个棘手的事情 NaNs
就是它 NaN !== NaN
和 Number.NaN !== NaN
,我们建议使用 Number.isNaN()
超过 isNan()
因为它只会检查给定的值是否会导致 NaN
如果您尝试将其转换为数字。 相反,您可以执行以下操作:
Number.isNaN(NaN); // true
Number.isNaN('test'); // false
let text = 'hello world!';
Number.isNaN(text); // false
text = +text; // shortcut to convert a string to a number
Number.isNaN(text); // true
isNaN()
另一方面将检查该值是否为 NaN
如果它被转换为一个数字。 我们建议不要使用 isNaN()
因为它给出了令人惊讶的行为。
isNaN(NaN); // true
isNaN('test'); // true
isNaN(2); // false
isNaN('2'); // false
关于另一个有趣的事情 NaNs
是阵列很难处理。 例如 arr.includes(NaN)
如果存在,将返回 true NaN
在数组中,而 arr.indexOf(NaN)
将返回 -1 有或没有 NaN
在数组中。 那是因为 includes()
使用不同的相等算法 indexOf()
。
如果你想要 indexOf()
一个 NaN
在一个数组中,讽刺的是你应该使用 findIndex()
如下: arr.findIndex(n => Number.isNaN(n))
。
let arr = ['1','2','3','4',NaN,'5'];
arr.findIndex(n => Number.isNaN(n)); // 4
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论