global NaN 속성(property)은 Not-A-Number(숫자가 아님)을 나타내는 값입니다.
Property attributes of NaN |
|
|---|---|
| Writable | no |
| Enumerable | no |
| Configurable | no |
구문
NaN
설명
NaN은 global object의 속성입니다.
NaN의 초기값은 Not-A-Number 즉, Number.NaN 값과 같습니다.
최신 브라우저에서, NaN은 설정불가(non-configurable), 쓰기불가(non-writable) 속성입니다. 이는 그 경우가 아닐 때라도, 재정의(overriding)를 피합니다.
프로그램에서 NaN을 사용하기는 조금 드뭅니다. 그것은 Math 함수가 실패(Math.sqrt(-1)))하거나 숫자를 파싱하려 한 함수가 실패(parseInt("blabla"))했을 때 반환되는 값입니다.
NaN에 대한 테스트
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 |
브라우저 호환성
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |