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
typeof 返回的是字符串,有六种可能:number、string、boolean、object、function、undefined,如果把 NaN 与任何值(包括其自身)相比得到的结果均是 false,所以要判断某个值是否是 NaN,不能使用 == 或 === 运算符
NaN,即 not a number,从字面意思上可以理解为非数字,但是在 JavaScript 的数据类型划分的时候,我们还是将其划分进 number 类型:在 JavaScript NaN 有一个其它类型数据都不具备的特性,这个数据与它本身不相等:
avaScript 中的数字类型是所有数字值的集合,包括 “Not A Number”,正无穷和负无穷。可以使用特殊表达式 NaN 、全局对象或 Number 函数的属性来访问“Not A Number”:
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!