JS NaN === NaN 과 isNaN()

코몽·2022년 2월 16일
0

코테를 보다가 다 풀어놓고 조건 검사를 if(NaN === NaN)으로 해서 틀린 적이 있다.
NaN은 Not a number 란 뜻으로 Number('a');와 같이 숫자로 바꿨는데
그게 숫자가 아닌 경우에 나오는 값이다.

근데 NaN은 typeof로 찍어 보면 number 나온다. (???)
Number 객체 안에 들어 있기 때문인 것 같다.

NaN에는 ==와 ===를 사용할 수 없다.
아니 할 수 는 있는데 죄다 무조건 false를 반환한다.
그냥 NaN이 해당 연산자를 우리의 의도대로 인식하지 못한다고 보면 될 것이다.

그럼 isNaN();을 사용해야 하는데 2가지 경우가 있다

  • isNaN()
  • Number.isNaN()

둘은 위와 같은 차이점이 있고 NaN을 인식하지 못하는 메소드들도 있으니 주의해야 겠다.

profile
프론트엔드 웹 개발자(React) https://code-d-monkey.tistory.com/

0개의 댓글