グローバルプロパティ 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 |
|---|---|---|---|---|---|---|
| 基本サポート | (有) | (有) | (有) | (有) | (有) | (有) |