티스토리 뷰
자바스크립트에서 값을 어떻게 비교하는지 간단하게 짚고 넘어가자면 아래와 같다. 밑으로 갈수록 엄격하다.
==
두 개를 비교할 때 타입 변환을 한다. 그리고 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
'공부일지(TIL) > JavaScript' 카테고리의 다른 글
[JavaScript] 렉시컬 환경 (0) | 2021.08.11 |
---|---|
[JavaScript] Iterable, Array-like (0) | 2021.08.01 |
[JavaScript] Property Accessor (0) | 2021.05.15 |
[JavaScript] Math.floor vs parseInt (feat. ~~) (1) | 2021.05.08 |
[JavaScript] 비동기 프로그래밍 (0) | 2021.04.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 깃
- Java
- this
- 제네릭스
- react
- Redux
- Session
- useEffect
- getter
- oracle
- linkedlist
- 개발 공부
- 인스턴스
- CSS
- GIT
- Data Structure
- SQL
- rxjs
- Prefix Sums
- jQuery
- 리덕스
- til
- c언어
- 자바
- youtube data api
- Conflict
- 포인터 변수
- package.json
- 알고리즘
- JavaScript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함