全域屬性 NaN 表示「非數值」(Not-A-Number)的數值。
Property attributes of NaN |
|
|---|---|
| Writable | no |
| Enumerable | no |
| Configurable | no |
語法
NaN
描述
NaN 的屬性屬於全域物件。
如同 Number.NaN 一般,NaN 的初始數值是「非數值」。在當今的瀏覽器中,NaN 屬性不可設定(non-configurable)也不可覆寫(non-writable)。雖然可能有例外,也請不要覆蓋它。
寫程式很少會直接動用 NaN。通常是在 Math 函式計算失敗(Math.sqrt(-1))或函式解析數字失敗(parseInt("blabla"))後才會回傳。
偵測是否為 NaN
NaN 不等於(==、!=、===、!==)任何值,包括 NaN 本身。請使用 Number.isNaN() 或 isNaN() 來確認某個數值是否為 NaN。哪怕是另一個 NaN。
NaN === NaN; // false
Number.NaN === NaN; // false
isNaN(NaN); // true
isNaN(Number.NaN); // true
function valueIsNaN(v) { return v !== v; }
valueIsNaN(1); // false
valueIsNaN(NaN); // true
valueIsNaN(Number.NaN); // true
規範
| 規範 | 狀態 | 註解 |
|---|---|---|
| ECMAScript 1st Edition (ECMA-262) | Standard | 初始定義。JavaScript 1.3 導入 |
| ECMAScript 5.1 (ECMA-262) The definition of 'NaN' in that specification. |
Standard | |
| ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'NaN' in that specification. |
Standard | |
| ECMAScript 2017 Draft (ECMA-262) The definition of 'NaN' in that specification. |
Draft |
瀏覽器相容性
| 功能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| 基本支援 | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| 功能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| 基本支援 | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |