Baseline Widely available
The Object.is()
static method determines whether two values are the same value.
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
Syntax
Object.is(value1, value2)
Parameters
value1
The first value to compare.
value2
The second value to compare.
A boolean indicating whether or not the two arguments are the same value.
DescriptionObject.is()
determines whether two values are the same value. Two values are the same if one of the following holds:
undefined
null
true
or both false
Object.is()
is not equivalent to the ==
operator. The ==
operator applies various coercions to both sides (if they are not the same type) before testing for equality (resulting in such behavior as "" == false
being true
), but Object.is()
doesn't coerce either value.
Object.is()
is also not equivalent to the ===
operator. The only difference between Object.is()
and ===
is in their treatment of signed zeros and NaN
values. The ===
operator (and the ==
operator) treats the number values -0
and +0
as equal, but treats NaN
as not equal to each other.
// Case 1: Evaluation result is the same as using ===
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: Signed zero
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
Specifications Browser compatibility See also
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4