js中isNaN和Number.isNaN的区别

Posted mrrabbit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中isNaN和Number.isNaN的区别相关的知识,希望对你有一定的参考价值。

isNaN

判断传入的参数是否能转换成数字,并不是严格的判断是否等于NaN。

例子:

console.log(parseInt(‘12测试‘)) //12

字符串是以数字开头的,parseInt方法会自动过滤掉后面的字符。

所以下面这段代码输出true,因为字符串是有可能转换成数字的(在第一个例子中已证明)

console.log(isNaN(‘测试‘)) //true

 

 

Number.isNaN

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

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

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

console.log(Number.isNaN(1/2)) //输出false
console.log(Number.isNaN(‘测试‘)) //输出false
console.log(Number.isNaN(2/‘测试‘)) //true

第一行代码:1/2的结果是Number类型的,所以它不等于NaN

第二行代码:字符串不等于NaN

第三行代码:2除以"测试"是不能运算的,它的值为NaN 

以上是关于js中isNaN和Number.isNaN的区别的主要内容,如果未能解决你的问题,请参考以下文章

Number.IsNaN() 比 isNaN() 更坏吗

[ES2015] Number.isNaN instead of isNaN

Js判断值是否是NaN

ES6 数值的扩展

(NaN != NaN) 和 (NaN !== NaN) 有啥区别?

NaN