首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript isNaN和null

Javascript isNaN和null
EN

Stack Overflow用户
提问于 2018-01-18 23:59:05
回答 1查看 1K关注 0票数 4

在Javascript中

parseInt(null)返回一个NaN

parseNumber(null)还返回一个NaN

isNaN('abcd')返回true,因为'abcd‘当然不是一个数字,

isNaN(5)返回false

但奇怪的是

isNaN(null)返回false,这意味着它是一个数字,但正如我们在parseNumber中看到的,它被看作是NaN

parseIntisNaN看待null的方式似乎不一致,一个人把它看作NaN,而另一个人把它看作一个数字。为什么它们不一致?

EN

回答 1

Stack Overflow用户

发布于 2018-01-19 00:02:37

isNaN()中发生的第一件事是,这个参数被强迫为一个数字。也就是说,这个函数看起来像是:

代码语言:javascript
复制
function isNaN(n) {
    n = +n;
    // ...
}

null被胁迫到一个数字时,值是0。那不是NaN

实际上,不应该使用isNaN函数来测试一个值是否是一个数字;这不是它的目的。这是为了测试一个数字--也就是你所知道的数字--是否是NaN

在现代运行时,有Number.isNaN(),它不执行那种类型的强制。当然,有了这一点,null仍然不是NaN

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48332213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档