Number.isNaN()
메서드는 전달된 값이 NaN
인지 결정합니다. 오리지널 global isNaN()
의 더 강력한 버전.
구문
Number.isNaN(value)
매개변수
value
NaN
인지 테스트될 값.
설명
NaN
이 NaN
인지 체크할 때 false
로 평가하는 두 등식(equality) 연산자 ==
및 ===
로 인해, 함수 Number.isNaN()
이 필요하게 되었습니다. 이 상황은 JavaScript에서 다른 모든 가능한 값 비교와는 다릅니다.
global isNaN()
함수에 비해, Number.isNaN()
은 강제로 매개변수를 숫자로 변환하는 문제를 겪지 않습니다. 이는 이제 보통NaN
으로 변환됐을 값이 안전하게 전달되지만, 실제로는 NaN
과 같은 값이 아님을 의미합니다. 이는 또한 오직 숫자형이고 또한 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 // 이들 모두 false를 반환함 Number.isNaN(true); Number.isNaN(null); Number.isNaN(37); Number.isNaN("37"); Number.isNaN("37.37"); Number.isNaN(""); Number.isNaN(" ");
Polyfill
Number.isNaN = Number.isNaN || function(value) { return typeof value === "number" && isNaN(value); } // Or Number.isNaN = Number.isNaN || function(value) { return value !== value; }
스펙
브라우저 호환성
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 25 | 15 (15) | No support | (Yes) | 9 |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | No support | ? | 15.0 (15) | No support | No support | 9 |