グローバルプロパティ NaN
は非数 (Not-A-Number) を表す値です。
Property attributes of NaN |
|
---|---|
書込可能 | false |
enumerable | false |
設定可能 | false |
構文
NaN
説明
NaN
はグローバルオブジェクトのプロパティです。
NaN
の初期値は非数であり、Number.NaN
の値と同等です。モダンブラウザであれば、NaN
は設定、書き込みがともに不可能なプロパティとなっています。そうでない場合であっても、オーバーライドは無効となります。
プログラム中で NaN
を使うことは非常にまれです。このプロパティは Math
関数が失敗したり (Math.sqrt(-1)
) 、ある数へと構文解析しようとした関数が失敗するとき (parseInt("blabla")
) に返される値です。
NaN
に対するテスト
NaN
は別の NaN 値を含むあらゆる数と同じではないと比較されます(==
、!=
、===
、!==
によって)。ある値が NaN かどうかを的確に判定するには Number.isNaN()
か isNaN()
を使用してください。あるいは自己比較を実行しましょう。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 |
ブラウザ互換性
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |