isNaN()详解以及isNaN()和Number.isNaN()区别

isNaN()详解以及isNaN()和Number.isNaN()区别isNaN 用法 我们先来看一组结果 其中 true 和 false 都可以被 Number 转换成数字 1 和 0null 和空数组 可以被 Number 转换为数字 0 对象 和 undefined 不可以被 Numbe

大家好,欢迎来到IT知识分享网。

isNaN用法:

对于可以被Number转换为数值的值x,那么isNaN(x)就是false
如果不可以被Number转换为数值的值y,那么isNaN(y)就是true

在这里插入图片描述
对于Date()这种特殊对象:
在这里插入图片描述
new Date()是可以被Number转化为数值的,所以isNaN(new Date()) === false
在这里插入图片描述
new Date().toString()返回的是格式化的字符串,不能被Number转化为数值,所以isNaN(new Date().toString()) === true
在这里插入图片描述
注意:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述








isNaN()和Number.isNaN()区别

Number('测试') // 输出NaN // 因为没有将“测试”成功转换成Number类型,所以下面代码输出true console.log(isNaN('测试')) // true 

Number.isNaN判断传入的参数是否严格的等于NaN(也就是 ===)。

那一般在什么情况下会用到Number.isNaN呢?

当两个变量进行运算时,我们可以使用Number.isNaN来判断它的值是否为NaN:

console.log(Number.isNaN(2/'测试')); // 输出true 

Number.isNaN与isNaN最的区别是,Number.isNaN不存在类型转换的行为。

console.log(isNaN('测试')) //true console.log(Number.isNaN('测试')) //false 

上面代码中,都是传入字符串“测试”,但为什么结果不同?原因在于:

isNaN会通过Number方法,试图将字符串”测试”转换成Number类型,但转换失败了,因为 Number(‘测试’) 的结果为NaN ,所以最后返回true。

而Number.isNaN方法,只是严格的判断传入的参数是否全等于NaN( ‘测试’ === NaN) ,字符串当然不全等于NaN啦,所以输出false。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/131055.html

(0)
上一篇 2025-08-10 19:33
下一篇 2025-08-10 20:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信