티스토리 뷰

자바스크립트에서 값을 어떻게 비교하는지 간단하게 짚고 넘어가자면 아래와 같다. 밑으로 갈수록 엄격하다.

  • ==
    두 개를 비교할 때 타입 변환을 한다. 그리고 IEEE 754를 따르기 위해 NaN과 -0, +0에 대한 특별한 핸들링을 한다. (그래서 NaN != NaN, -0 == +0)
  • ===
    NaN, -0, +0에 관한 핸들링을 포함하여 == 와 동일한 비교를 하지만 타입 변환을 하지 않는다. 객체의 동일성을 비교할 때 reference가 같은지 체크한다.
  • Object.is
    NaN, -0, +0에 대한 핸들링도 하지 않고 타입 변환도 하지 않는다. NaN, -0, +0에 대한 부분을 제하면 === 와 같다. (e.g. Object.is(NaN, Number.NaN) === true)

Ref

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함