오늘은 Object.is
에 대해 정리해 보려고 합니다.
Object.is의 개념
Object.is
는 두 값이 같은지를 판별하는 메서드입니다.
이 메서드는 ===
(엄격한 동등 연산자)와 비슷하게 작동하지만, 몇 가지 특별한 경우에서 다르게 동작합니다.Object.is
는 다음과 같은 경우에 true
를 반환합니다:
- 두 값이 정확히 같은 경우 (예: 같은 객체를 참조하거나, 두 변수가 같은 기본값을 갖는 경우).
- 두 값이 모두
NaN
인 경우 (NaN === NaN
은false
이지만,Object.is(NaN, NaN)
은true
). - 두 값이
0
과-0
인 경우 서로 다르다고 판단 (0 === -0
은true
이지만,Object.is(0, -0)
은false
).
사용법
Object.is
메서드는 두 개의 인자를 받으며, 이 인자들이 같은 값이나 같은 객체를 참조하는지 판별합니다.
Object.is(value1, value2);
예제 코드
다음은 Object.is
를 사용한 몇 가지 예제입니다:
console.log(Object.is(25, 25)); // true
console.log(Object.is('hello', 'hello')); // true
console.log(Object.is(undefined, undefined)); // true
const obj = { name: 'JavaScript' };
console.log(Object.is(obj, obj)); // true
console.log(Object.is({}, {})); // false, 서로 다른 객체
console.log(Object.is(NaN, NaN)); // true
console.log(Object.is(0, -0)); // false
console.log(Object.is(-0, -0)); // true
console.log(Object.is(true, 1)); // false, 서로 다른 타입
언제 사용해야 하나요?
Object.is
는 주로 두 값의 동등성을 엄격하게 비교해야 할 때 사용합니다.
특히 NaN
이나 +0
과 -0
을 구분해야 할 경우에 유용합니다.
일반적인 상황에서는 ===
를 사용하는 것이 더 일반적이지만, 특수한 경우에는 Object.is
가 더 적합할 수 있습니다.
Number.isNaN()
NaN 을 확인해야할 경우에는 Number.isNaN을 사용할 수도 있다!
'javascript' 카테고리의 다른 글
[240510 TIL] 이벤트 버블링, 캡처링, 관련메소드 (0) | 2024.05.10 |
---|---|
[240508 TIL] Object.assign, 깊은 복사 (1) | 2024.05.08 |
[240504 WIL] query params (0) | 2024.05.04 |
[240503 TIL] 전역변수? 지역변수? live binding (0) | 2024.05.03 |
[240502 TIL] domContentLoaded (0) | 2024.05.02 |