JavaScript 中的 NaN 介紹
全域屬性 NaN 表示 Not-A-Number 的值。
Property attributes of NaN
Writable no
Enumerable no
Configurable no
語法
NaN
描述
NaN 是一個全域物件的屬性。
NaN 屬性的初始值就是 NaN,和 Number.NaN 的值一樣。在現代瀏覽器中(ES5中), NaN 屬性是一個不可配置(non-configurable),不可寫(non-writable)的屬性。但在ES3中,這個屬性的值是可以被更改的,但是也應該避免覆蓋。
在編碼很少直接使用到 NaN。通常都是在計算失敗時,作為 Math 的某個方法的返回值出現的(例如:Math.sqrt(-1))或者嘗試將一個字串解析成數字但失敗了的時候(例如:parseInt("blabla"))。
判斷一個值是否是NaN
等號運算子(== 和 ===) 不能被用來判斷一個值是否是 NaN。必須使用 Number.isNaN() 或 isNaN() 函式。
NaN === NaN; // false
Number.NaN === NaN; // false
isNaN(NaN); // true
isNaN(Number.NaN); // true
Property attributes of NaN
Writable no
Enumerable no
Configurable no
語法
NaN
描述
NaN 是一個全域物件的屬性。
NaN 屬性的初始值就是 NaN,和 Number.NaN 的值一樣。在現代瀏覽器中(ES5中), NaN 屬性是一個不可配置(non-configurable),不可寫(non-writable)的屬性。但在ES3中,這個屬性的值是可以被更改的,但是也應該避免覆蓋。
在編碼很少直接使用到 NaN。通常都是在計算失敗時,作為 Math 的某個方法的返回值出現的(例如:Math.sqrt(-1))或者嘗試將一個字串解析成數字但失敗了的時候(例如:parseInt("blabla"))。
判斷一個值是否是NaN
等號運算子(== 和 ===) 不能被用來判斷一個值是否是 NaN。必須使用 Number.isNaN() 或 isNaN() 函式。
NaN === NaN; // false
Number.NaN === NaN; // false
isNaN(NaN); // true
isNaN(Number.NaN); // true
留言
張貼留言