[JavaScript] 자바스크립트 숫자 체크(isNaN)
자바 스크립트에서 숫자가 아님을 의미하는 것은 NaN(Not a Number)라는 것이 있다.
하지만 이건 (NaN == NaN)과 같이 비교할 수 없다.(예상한 결과값과 다르게 나올 것이다.)
예를 들어서 아래와 같이 사용할 수 있다.
숫자가 아닐 때 true를 반환한다.
근데 isNaN()도 있고,
Number.isNaN()도 있다.
둘의 정확한 용법 차이는 아래에서 자세하게 확인할 수 있다.
isNaN()
isNaN() 함수는 어떤 값이 NaN인지 판별합니다. isNaN 함수는 몇몇 일반적이지 않은 규칙을 가지고 있으므로, ECMAScript 2015에서 추가한 Number.isNaN()으로 바꾸는 편이 좋을 수도 있습니다.
developer.mozilla.org
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN
Number.isNaN()
Number.isNaN() 메서드는 주어진 값이 NaN인지 판별합니다.
developer.mozilla.org
isNaN() 함수는 어떤 값이 NaN인지 판별합니다. isNaN 함수는 몇몇 일반적이지 않은 규칙을 가지고 있으므로, ECMAScript 2015에서 추가한 Number.isNaN()으로 바꾸는 편이 좋을 수도 있습니다.
Number.isNaN() 메서드는 주어진 값이 NaN인지 판별합니다. 기존부터 존재한 전역 isNaN() 함수의 더 엄격한 버전입니다.
위와 같이 서로 다른 부분이 있다.
정확한 용법을 배워서, 상황에 맞게 사용하면 될 것 같다.
가장 눈에 띄었던 것은
NaN은 똑같이 처리해주는데, 비슷한(?) undefined는 다르게 처리한다.
isNaN에서는
isNaN(undefined); // true
Number.isNaN에서는
Number.isNaN(undefined); // false
간단하게는 Number.isNaN에서는 정확히(?) 숫자에 대해서만 Not a Number인지 확인하는 것 같다.