Number.isNaN() 메서드는 전달된 값이 NaN인지 결정합니다. 오리지널 global isNaN()의 더 강력한 버전.
구문
Number.isNaN(value)
매개변수
valueNaN인지 테스트될 값.
설명
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 |