如何在 JavaScript 中检查 NaN

发布于 2022-06-07 22:23:39 字数 1547 浏览 899 评论 0

处理的时候 NaN 在你的项目中,了解什么是很重要的 NaNs 是以及它们是如何工作的。 NaN 是全局对象的不可写、不可配置、不可枚举的属性。 一个棘手的事情 NaNs 就是它 NaN !== NaNNumber.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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

俯瞰星空

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文