isNaN은 왜 안티 패턴일까?

jkpark104·2021년 9월 11일
4
post-thumbnail

0. Number.isNaN

주어진 값의 유형이 Number이고 값이 NaN이면 true, 아니면 false를 반환한다. (MDN)

1. isNaN vs Number.isNaN

  • NaN 데이터를 판별하는 함수에는 isNaNNumber.isNaN이 존재한다.
  • ECMAScript 2015에 새롭게 추가된 문법인 Number.isNaN
  • 기존의 isNaN과 비교해 다음과 같은 차이점을 갖고 있다.

Q . 왜 동일한 결과를 갖지 않을까 ?

2. 타입 강제 변환의 유무

  1. isNaN - 데이터를 판별하기 전에 암묵적 타입 변환(타입 강제 변환)이 일어난다.

    isNaN의 특징

  2. Number.isNaN - 타입 강제 변환이 일어나지 않는다.

    Number.isNaN의 특징

Number.isNaN은 더 엄격하게 NaN 데이터를 판별할 수 있다.

3. 결론

  • =====의 관계처럼 타입 강제 변환이 일어나지 않아 데이터 비교에 혼란이 없는 Number.isNaN 함수를 사용하자

0개의 댓글