Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015년 7월.
전역 NaN 속성은 Not-A-Number(숫자가 아님)를 나타냅니다.
Number.NaN와 동일한 숫자 값입니다.
| 쓰기 가능 | 불가능 |
| 열거 가능 | 불가능 |
| 설정 가능 | 불가능 |
NaN은 전역 객체의 속성입니다. 즉 전역 범위의 변수입니다.
최신 브라우저에서 NaN은 설정 불가, 쓰기 불가 속성입니다. 그렇지 않다고 하더라도 덮어쓰는 건 피하는 게 좋습니다.
NaN을 반환하는 연산에는 다섯 가지 종류가 있습니다.
NaN과 NaN의 동작은 JavaScript에서 발명한 것이 아닙니다. 부동 소수점 산술의 의미(NaN !== NaN 포함)는 IEEE 754에 의해 지정됩니다. NaN의 동작은 다음과 같습니다.
NaN은 JavaScript의 falsy 값 중 하나이기도 합니다.
값이 NaN인지 확인하려면, Number.isNaN() 또는 isNaN()를 사용하여 값이 NaN인지 여부를 확인 할 수 있습니다. 또는 NaN은 자신과 같지 않다고 비교되는 유일한 값이므로 x !== x와 같은 자체 비교를 수행할 수 있습니다.
그러나 isNaN()과 Number.isNaN()의 차이를 유의해야 합니다. isNaN은 현재 값이 NaN이거나, 숫자로 변환했을 때 NaN이 되면 참을 반환하지만, Number.isNaN은 현재 값이 NaN이어야만 참을 반환합니다.
같은 이유로 BigInt 값을 사용하면 Number.isNaN()이 아닌 isNaN()에서 오류가 발생합니다.
또한 일부 배열 메서드는 NaN을 찾을 수 없는 반면에 다른 배열 메서드들은 찾을 수 있습니다. 즉, (indexOf(), lastIndexOf())는 NaN을 찾을 수 없지만, includes()는 값을 찾을 수 있습니다.
NaN과 그 비교에 대한 자세한 내용은 평등 비교 및 동일성를 참조.
NaN이 자신과 동등하지 않은 데는 동기가 있습니다. IEEE 754 인코딩에서 지수 0x7ff와 0이 아닌 가수부가 있는 부동 소수점 숫자는 NaN이기 때문에 서로 다른 이진 표현을 가진 두 개의 부동 소수점 숫자를 생성할 수 있지만 둘 다 NaN입니다. JavaScript에서 typed arrays를 사용하여 비트 수준 조작을 수행할 수 있습니다.
NaN은 수학적 연산을 통해 전파되므로 일반적으로 오류 조건을 감지하기 위해 계산이 끝날 때 한 번 NaN을 테스트하는 것으로 충분합니다. NaN이 자동으로 이스케이프되는 유일한 경우는 지수가 0인 거듭제곱을 사용할 때입니다. 그러면 기본값을 검사하지 않고 즉시 1이 반환됩니다.
| ECMAScript® 2027 Language Specification # sec-value-properties-of-the-global-object-nan |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025년 6월 27일 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.