Gitsunmin

TIL

TIL
(=Today I Learned)

Object.is

정의

Object.is(value1, value2)

Object.is 메서드는 두 값이 동일한지 비교합니다. 이 메서드는 === 연산자와 유사하지만, 몇 가지 중요한 차이점이 있습니다.

주요 차이점

  1. NaNObject.is로 비교할 때 동일하다고 간주됩니다.

    console.log(NaN === NaN); // false
    console.log(Object.is(NaN, NaN)); // true
  2. +0-0Object.is로 비교할 때 서로 다르다고 간주됩니다.

    console.log(+0 === -0); // true
    console.log(Object.is(+0, -0)); // false
  3. 그 외의 경우는 ===와 동일하게 작동합니다.

    console.log(1 === "1"); // false
    console.log(Object.is(1, "1")); // false

사용 예제

// NaN 비교
console.log(Object.is(NaN, NaN)); // true

// +0과 -0 비교
console.log(Object.is(+0, -0)); // false

// 일반적인 비교
console.log(Object.is(1, 1)); // true
console.log(Object.is(1, "1")); // false
console.log(Object.is("hello", "hello")); // true
console.log(Object.is({}, {})); // false (서로 다른 객체)

참조

MDN Web Docs - Object.is