2.4.4 특이한 동등 비교

jude·2022년 1월 31일
0

you don't know js

목록 보기
17/30
post-thumbnail

NaN, 0과 -0등을 ES6에서 Object.is() 라는 유틸리티 함수로 간단하게 판별할 수 있다.
NaN은 물론 Number.isNaN()을 사용해도 된다.

폴리필도 간단하다.

if (!Object.is) {
  Object.is = function (v1, v2) {
    // '-0' 테스트
    if (v1 === 0 && v2 === 0) {
      return 1 / v1 === 1 / v2;
    }
    // 'NaN' 테스트
    if (v1 !== v1) {
      return v2 !== v2;
    }
    // 기타
    return v1 === v2;
  }
}

결론

0과 -0을 비교할 때는 Object.is()를 사용할 것
그 외에는 == 또는 === 연산자로 판별하는 것이 더 효율적.

profile
UI 화면 만드는걸 좋아하는 UI개발자입니다. 프론트엔드 개발 공부 중입니다. 공부한 부분을 블로그로 간략히 정리하는 편입니다.

0개의 댓글