This page was translated from English by the community.Learn more and join the MDN Web Docs community.
Number.isNaN()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015년 9월.
Number.isNaN() 정적 메서드는 전달받은 값이NaN인지 여부를 결정하고 입력이 Number 유형이 아니라면false를 반환합니다. 이 함수는 원래의 전역isNaN() 함수보다 강력합니다.
In this article
시도해 보기
function typeOfNaN(x) { if (Number.isNaN(x)) { return "Number NaN"; } if (isNaN(x)) { return "NaN"; }}console.log(typeOfNaN("100F"));// Expected output: "NaN"console.log(typeOfNaN(NaN));// Expected output: "Number NaN"구문
Number.isNaN(value)매개변수
반환 값
주어진 숫자가NaN 값을 가진다면true 불리언 값을, 그렇지 않다면false를 반환합니다.
설명
Number.isNaN() 함수는NaN과의 동등성을 확인하는 편리한 방법을 제공합니다. JavaScript에서== 또는=== 연산자를 사용하여NaN과의 동등성을 시험할 수 없다는 점을 유의하세요. 모든 다른 값 비교와는 달리, 이 연산자는 한 피연산자가NaN일 때 항상false로 평가되며, 또 다른 피연산자가NaN일 때도 마찬가지입니다.
JavaScript의 모든 가능한 값 중에서x !== x가true인 경우는NaN뿐이므로,Number.isNaN(x)는x !== x 테스트로 대체될 수 있습니다. 다만 후자가 가독성이 떨어진다는 단점이 있습니다.
전역isNaN() 함수와는 달리,Number.isNaN() 메서드는 매개변수를 강제로 숫자로 변환하지 않습니다. 이로 인해 일반적으로는NaN으로 변환되지만 실제로는NaN과 같은 값이 아닌 값들을 안전하게 전달할 수 있습니다. 또한 이는NaN인 Number 타입의 값만이true를 반환한다는 것을 의미합니다.
예제
>isNaN() 사용하기
Number.isNaN(NaN); // trueNumber.isNaN(Number.NaN); // trueNumber.isNaN(0 / 0); // trueNumber.isNaN(37); // falseNumber.isNaN() 과 전역 isNaN()과의 차이점
Number.isNaN()은 매개변수를 숫자로 변환하려는 시도를 하지 않아서 숫자가 아니면 언제나false를 반환합니다. 아래 코드는 모두false입니다.
Number.isNaN("NaN");Number.isNaN(undefined);Number.isNaN({});Number.isNaN("blabla");Number.isNaN(true);Number.isNaN(null);Number.isNaN("37");Number.isNaN("37.37");Number.isNaN("");Number.isNaN(" ");전역isNaN()은 매개변수를 숫자로 강제로 변환시킵니다.
isNaN("NaN"); // trueisNaN(undefined); // trueisNaN({}); // trueisNaN("blabla"); // trueisNaN(true); // false, 1로 강제 변환됩니다isNaN(null); // false, 0으로 강제 변환됩니다isNaN("37"); // false, 37로 강제 변환됩니다isNaN("37.37"); // false, 37.37로 강제 변환됩니다isNaN(""); // false, 0으로 강제 변환됩니다isNaN(" "); // false, 0으로 강제 변환됩니다명세서
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-number.isnan> |