共计 733 个字符,预计需要花费 2 分钟才能阅读完成。
在 js 中,NaN
的意思是not a number
,它是一个比拟非凡的值。
NaN 的个性
首先,它是 number
类型。
typeof NaN; // number
其次,尽管是 number
类型,然而咱们没法确定它的值到底是多少。
1 < NaN; // false
1 == NaN; // false
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';
}
正文完
发表至: javascript
2023-06-06