1. 程式人生 > >在JavaScript中NaN為什麼不等於NaN

在JavaScript中NaN為什麼不等於NaN

NaN ,即非數值(Not a Number)是一個特殊的數值,這個數值用於表示一個本來要返回數值的運算元未返回數值的情況(這樣就不會丟擲錯誤了)。任何與NaN進行運算的結果均會為NaN,NaN與自身不相等(NaN不與任何值相等)。

NaN 屬性是代表非數字值的特殊值。該屬性用於指示某個值不是數字

NaN=NaN;
NaN

NaN==NaN;
false

NaN===NaN;
false

ECMAScript定義了 isNaN() 函式。這個函式接受一個引數,該引數可以是任何型別,而函式會幫我們確定這個引數是否“不是數值”。 isNaN() 在接收到一個值之後,會嘗試將這個值轉換為數值。某些不是數值的值會直接轉換為數值,例如字串 “10” 或 Boolean 值。而任何不能被轉換為數值的值都會導致這個函式返回 true 。

alert(isNaN(NaN)); //true
alert(isNaN(20)); //false(20是一個數值)
alert(isNaN(“10”)); //false(可以被轉換成數值10)
alert(isNaN(“jjh”)); //true(不能轉換成數值)
alert(isNaN(true)); //false(可以被轉換成數值1)