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的区别的主要内容,如果未能解决你的问题,请参考以下文章
[ES2015] Number.isNaN instead of isNaN