--- title: Number.isNaN() slug: Web/JavaScript/Reference/Global_Objects/Number/isNaN tags: - ECMAScript 2015 - JavaScript - Method - Number - Reference translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN ---
Number.isNaN()
메서드는 주어진 값이 {{jsxref("NaN")}}인지 판별합니다. 기존부터 존재한 전역 {{jsxref("isNaN", "isNaN()")}} 함수의 더 엄격한 버전입니다.
Number.isNaN(value)
value
주어진 값의 유형이 {{jsxref("Number")}}이고 값이 {{jsxref("NaN")}}이면 true
, 아니면 false
.
{{jsxref("NaN")}}이 NaN
인지 계산할 때, 두 동일 연산자 ==
과 ===
모두 false
로 평가되므로 값의 NaN
여부를 알아내려면 Number.isNaN()
이 필요합니다. 이 상황은 다른 모든 JavaScript와 다른 특별한 경우입니다.
전역 {{jsxref("isNaN", "isNaN()")}} 함수와 달리, Number.isNaN()
은 강제로 매개변수를 숫자로 변환하는 문제를 겪지 않습니다. 이는 이제 보통{{jsxref("NaN")}}으로 변환됐을 값이 안전하게 전달되지만, 실제로는 {{jsxref("NaN")}}과 같은 값이 아님을 의미합니다. 이는 또한 오직 숫자형이고 또한 {{jsxref("NaN")}}인 값만이 true
를 반환함을 뜻합니다.
Number.isNaN(NaN); // true Number.isNaN(Number.NaN); // true Number.isNaN(0 / 0) // true // 예를 들면 이들은 global isNaN()으로는 true가 됐을 것임 Number.isNaN("NaN"); // false Number.isNaN(undefined); // false Number.isNaN({}); // false Number.isNaN("blabla"); // false // 모두 Number.isNaN(true); Number.isNaN(null); Number.isNaN(37); Number.isNaN("37"); Number.isNaN("37.37"); Number.isNaN(""); Number.isNaN(" ");
Number.isNaN = Number.isNaN || function(value) { return value !== value; }
명세 | 상태 | 설명 |
---|---|---|
{{SpecName('ES6', '#sec-number.isnan', 'Number.isnan')}} | {{Spec2('ES6')}} | 초기 정의. |
{{SpecName('ESDraft', '#sec-number.isnan', 'Number.isnan')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.Number.isNaN")}}