javascript中,是否除了值為NaN的,其他的變量是否都恒等于自己?
問題描述
javascript如何快速判斷一個變量val的值是否是NaN?如果除了值為NaN的,其他的變量是否都恒等于自己,那么直接判斷val===val是否就行了?
問題解答
回答1: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
回答2:是的,NaN 使用 isNaN 或者 是否等于自己來判斷
同時,反過來說,如果兩個變量相等判斷這兩個變量是否相同有 +0 和 -0 的特殊情況,使用倒數判斷是否相等。
回答3:let a = []let b = []console.log(a===b)
題主試一試?
回答4:ES6在Number對象上,新提供了Number.isNaN()方法,建議直接使用Number.isNaN()來檢查一個值是否為NaN。另外除開 +0 和 -0 的情況,===是滿足需求的,更好一點的方式使用Object.is()
相關文章:
