javascript如何快速判断一个变量val的值是否是NaN?如果除了值为NaN的,其他的变量是否都恒等于自己,那么直接判断val===val是否就行了?
val===val
NaN是JavaScript里面唯一一个非自反的值,也就是
NaN === NaN // false
这本书里面有提到:
NaN is a very special value in that it's never equal to another NaN value (i.e., it's never equal to itself). It's the only value, in fact, that is not reflexive (without the Identity characteristic x === x). So, NaN !== NaN.
你不知道的JavaScript
是的,NaN 使用 isNaN 或者 是否等于自己来判断
同时,反过来说,如果两个变量相等判断这两个变量是否相同有 +0 和 -0 的特殊情况,使用倒数判断是否相等。
let a = [] let b = [] console.log(a===b)
题主试一试?
ES6在Number对象上,新提供了Number.isNaN()方法,建议直接使用Number.isNaN()来检查一个值是否为NaN。另外除开 +0 和 -0 的情况,===是满足需求的,更好一点的方式使用Object.is()
Number
Number.isNaN()
NaN
+0
-0
===
Object.is()
NaN是JavaScript里面唯一一个非自反的值,也就是
这本书里面有提到:
你不知道的JavaScript
是的,NaN 使用 isNaN 或者 是否等于自己来判断
同时,反过来说,如果两个变量相等判断这两个变量是否相同有 +0 和 -0 的特殊情况,使用倒数判断是否相等。
题主试一试?
ES6在
Number
对象上,新提供了Number.isNaN()
方法,建议直接使用Number.isNaN()
来检查一个值是否为NaN
。另外除开
+0
和-0
的情况,===
是满足需求的,更好一点的方式使用Object.is()