전역 NaN 속성은 Not-A-Number(숫자가 아님)를 나타냅니다.

Property attributes of NaN
Writable no
Enumerable no
Configurable no

구문

NaN

설명

NaN전역 객체의 속성입니다.

NaN의 초기값은 Not-A-Number, 즉 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

그러나 isNaN()Number.isNaN()의 차이를 주의해야 합니다. isNaN은 현재 값이 NaN이거나 숫자로 치환할 수 없을 때 참을 반환하지만, Number.isNaN은 현재 값이 NaN이어야만 참을 반환합니다.

 

isNaN('hello world'); // returns 'true'.
Number.isNaN('hello world'); // returns 'false'.

 

명세

스펙 상태 설명
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 Latest Draft (ECMA-262)
The definition of 'NaN' in that specification.
Draft  

브라우저 호환성

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidiOS SafariSamsung InternetNode.js
Basic supportChrome Full support YesEdge Full support YesFirefox Full support 1IE Full support YesOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesEdge Mobile Full support YesFirefox Android Full support 4Opera Android Full support YesSafari iOS Full support YesSamsung Internet Android Full support Yesnodejs Full support Yes

Legend

Full support  
Full support

참조

문서 태그 및 공헌자

이 페이지의 공헌자: urty5656, Netaras, nacyot, teoli, Gilchris
최종 변경자: urty5656,