Object.is()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Object.is() 정적 메서드는 두 값이 같은 값인지 결정합니다.

시도해보기

console.log(Object.is("1", 1));
// Expected output: false

console.log(Object.is(NaN, NaN));
// Expected output: true

console.log(Object.is(-0, 0));
// Expected output: false

const obj = {};
console.log(Object.is(obj, {}));
// Expected output: false

구문

js
Object.is(value1, value2);

매개변수

value1

비교할 첫 번째 값.

value2

비교할 두 번째 값.

반환 값

두 인수가 같은 값인지 여부를 나타내는 불리언.

설명

Object.is()는 두 값이 같은 값인지 결정합니다. 다음 중 하나를 만족하면 두 값은 같습니다.

  • 둘 다 undefined

  • 둘 다 null

  • 둘 다 true 또는 둘 다 false

  • 둘 다 같은 순서로 같은 문자에 같은 길이인 문자열

  • 둘 다 같은 객체 (두 값 모두 메모리에서 같은 객체를 참조하는 것을 의미)

  • 둘 다 숫자이며

    • 둘 다 +0
    • 둘 다 -0
    • 둘 다 NaN
    • 둘 다 0이나 NaN이 아니고, 같은 값을 지님

Object.is()== 연산자와 같지 않습니다. == 연산자는 같음을 테스트하기 전에 양 쪽(이 같은 형이 아니라면)에 다양한 강제(coercion)를 적용하지만("" == falsetrue가 되는 것과 같은 행동을 초래), Object.is는 어느 값도 강제하지 않습니다.

Object.is()=== 연산자와도 같지 않습니다. Object.is()===의 유일한 차이는 부호 있는 0과 NaN 값들의 처리입니다. === 연산자(및 == 연산자)는 숫자값 -0+0을 같게 처리하지만, NaN은 서로 같지 않게 처리합니다.

예제

Object.is() 사용

js
// Case 1: 평가 결과는 ===을 사용한 것과 동일합니다
Object.is(25, 25); // true
Object.is("foo", "foo"); // true
Object.is("foo", "bar"); // false
Object.is(null, null); // true
Object.is(undefined, undefined); // true
Object.is(window, window); // true
Object.is([], []); // false
const foo = { a: 1 };
const bar = { a: 1 };
const sameFoo = foo;
Object.is(foo, foo); // true
Object.is(foo, bar); // false
Object.is(foo, sameFoo); // true

// Case 2: 부호 있는 0
Object.is(0, -0); // false
Object.is(+0, -0); // false
Object.is(-0, -0); // true

// Case 3: NaN
Object.is(NaN, 0 / 0); // true
Object.is(NaN, Number.NaN); // true

명세

Specification
ECMAScript® 2025 Language Specification
# sec-object.is

브라우저 호환성

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
Node.js
is

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

같이 보기