How to Use Object.is in JavaScript: Syntax and Examples
Object.is is a method in JavaScript that compares two values for strict equality, similar to === but with special handling for NaN and signed zeros. Use Object.is(value1, value2) to check if both values are the same, including edge cases where === fails.Syntax
The syntax for Object.is is simple:
Object.is(value1, value2): Comparesvalue1andvalue2for strict equality.- Returns
trueif the values are the same,falseotherwise.
This method treats NaN as equal to NaN and distinguishes between +0 and -0.
javascript
Object.is(value1, value2)Example
This example shows how Object.is compares values differently than ===:
javascript
console.log(Object.is('hello', 'hello')); // true console.log(Object.is(0, -0)); // false console.log(Object.is(NaN, NaN)); // true console.log(Object.is(42, '42')); // false console.log(Object.is({}, {})); // false (different objects)
Output
true
false
true
false
false
Common Pitfalls
Many developers expect Object.is to behave exactly like ===, but it differs in two key cases:
- NaN comparison:
NaN === NaNisfalse, butObject.is(NaN, NaN)istrue. - Signed zero:
+0 === -0istrue, butObject.is(+0, -0)isfalse.
Use Object.is when you need these precise comparisons.
javascript
console.log(+0 === -0); // true console.log(Object.is(+0, -0)); // false console.log(NaN === NaN); // false console.log(Object.is(NaN, NaN)); // true
Output
true
false
false
true
Quick Reference
| Comparison Case | === Result | Object.is Result |
|---|---|---|
| Same string values | true | true |
| Different objects | false | false |
| NaN vs NaN | false | true |
| +0 vs -0 | true | false |
| Number vs string | false | false |
Key Takeaways
Use Object.is to compare values with special cases like NaN and signed zeros.
Object.is(NaN, NaN) returns true, unlike === which returns false.
Object.is distinguishes +0 and -0, while === treats them as equal.
For most cases, === works fine, but use Object.is for precise equality checks.
Object.is compares primitives and references strictly without type coercion.