isNaN 과Number.isNaN의 차이

jjyung·2021년 9월 9일
0

JS

목록 보기
2/13

자바스크립트의 일치연산자를 공부하다보니 'NaN은 자신과 일치하지 않는 유일한 값'이기때문에 NaN인지 조사하려면 빌트인 함수인 isNaN이나 Number.isNaN을 더 많이 사용한다는 것을 알았다.

isNaN()과 Number.isNaN()의 차이

isNaN은 강제형변환을 해서 비교하지만(덜 엄격하다), Number.isNaN은 엄격하다보니 형변환을 하지 않고 비교한다.

읭???????????
콘솔에 한 번 찍어보니 예상치 못한 결과가 나왔다.
분명 's'는 문자열이기때문에 true가 나올것을 예상했는데 Number.isNaN에서는 false가 반환되었다. 그 이유는 무엇일까?

Number.isNaN()

다시 저 콘솔창을 보자면 's'는 문자열이고, 문자열은 NaN이 아니고 Number도 아니다. 아까 말했던것처럼 Number.isNaN()은 상당히 엄격해서 NaN이 아니거나 Number이 아닌경우 다 false를 반환한다.

그럼 언제 true를 반환할까?
반대로 생각하면 쉽다. Number이면서 NaN이면 된다...!

그래서 이건 그럼 언제 사용하는데?

더 엄격하기때문에 Number을 사용했는데 false가 나오는 경우 숫자인것을 파악할 수 있다. 이러한 속성을 이해한다면 잘 활용할 수 있지 않을까?

profile
🏃‍♀️movin' forward, developer

0개의 댓글