在js中,NaN
的意思是not a number
,它是一个比较特殊的值。
NaN的特性
首先,它是number
类型。
typeof NaN; // number
其次,虽然是number
类型,但是我们没法确定它的值到底是多少。
1 NaN; // false
由于没法确定NaN
的值,所以即使是NaN
自己跟自己也不相等。
let a = NaN;
let b = NaN;
a == b; // false
那么,如何判断一个值是不是NaN
呢,直接判断肯定不行啊。
let a = NaN;
a == NaN; // false
用全局函数isNaN()
全局 isNaN()
函数将测试值转换为数字,然后对其进行测试。
isNaN(123) //false
isNaN(-1.23) //false
isNaN(5-2) //false
isNaN(0) //false
isNaN('123') //false
isNaN('Hello') //true
isNaN('2005/12/12') //true
isNaN('') //false
isNaN(true) //false
isNaN(undefined) //true
isNaN('NaN') //true
isNaN(NaN) //true
isNaN(0 / 0) //true
isNaN(null) //false
自己实现一个
我们的思路是:虽然NaN
的值不确定,它连自己都不等于自己,但是它转换为字符串后的值是确定的,就是'NaN'
。
NaN.toString(); // 'NaN'
所以我们可以把测试值转换为数字后,再转换为字符串,用得到的值去跟字符串'NaN'
做比较。
function isNaNFake(val) {
return `${Number(val)}` == 'NaN';
}
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: windows域导入,导出用户 及双域控服务器冗余
1、 AD域导入导出用户 https://cloud.tencent.com/developer/article/1411389 https://jingyan.baidu.com/album/90808022a63db7fd91c80fbd.html?pic…