微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

isNaN真的必要吗?

如何解决isNaN真的必要吗?

根据MDN page 1 关于isNaN(强调我的意思):

与JavaScript中所有其他可能的值不同,不可能依靠相等运算符(==和===)来确定一个值是否为NaN,因为NaN == NaN和NaN === NaN评估为假。 因此,isNaN函数的必要性

但是,由于NaN是JavaScript中唯一一个与自身比较不相等的值,因此实际上可以依靠严格相等运算符来确定明确值是否为NaN

const value = NaN;
console.log(value === value)

那是什么,该MDN句子的解释是什么?


PS:我确实知道MDN不是官方文档(可能是ECMA),就像Wiki一样,任何人都可以对其进行编辑。即使这样,它还是一个非常可靠的来源。

1:该问题在回答者as mentioned发布问题后已被编辑。

解决方法

否,不需要内置isNaN函数。 isNaN只是为了方便起见。当然,可以手动执行以下操作:

const isNaN = arg => arg !== arg

对于要在其中执行此操作的每个脚本,但这会很乏味。

或者,如果没有该功能,请考虑阅读如下代码:

if (parsedNumber !== parsedNumber) {
  // It's NaN
}

这看起来真的很奇怪,并且使代码具有尽可能高的可读性符合程序员的最大利益。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。