How to useObject.is() in Javascript

Object.is() determines whether two values are the same value. Two values are the same if both are undefined, both null, both true or both false, both strings of the same length with the same characters in the same order, both the same object (meaning both values reference the same object in memory), both numbers and both +0, both -0, both NaN, or both non-zero and both not NaN and both have the same value

Key Difference Between Object.is() and === (Strict Equality)

  • Object.is(+0,0) is false, Object.is(NaN,NaN) is true.
  • So Object.is() is just === with different behavior for negative zero -0 and NaN.

Syntax : 

Object.is(value1, value2);

Example : In this example, the Object.is() method is checking if the provided value is of the specified type.

Javascript




// Evaluation result is the same as using ===
console.log(Object.is(25, 25));             // true
console.log(Object.is('foo', 'foo'));         // true
console.log(Object.is('foo', 'bar'));         // false
console.log(Object.is(null, null));         // true
console.log(Object.is(undefined, undefined)); // true
console.log(Object.is([], []));             // false
 
let foo = { a: 1 };
let bar = { a: 1 };
 
console.log(Object.is(foo, foo));             // true
console.log(Object.is(foo, bar));             // false


Output

true
true
false
true
true
false
true
false

How to check if the provided value is of the specified type in JavaScript ?

To check if the provided value is of the specified type in JavaScript, we have multiple approaches.

Below are the approaches used to check if the provided value is of the specified type in JavaScript:

Table of Content

  • Using Object.is()
  • Using TypeOf Operator

Similar Reads

Approach: Using Object.is()

Object.is() determines whether two values are the same value. Two values are the same if both are undefined, both null, both true or both false, both strings of the same length with the same characters in the same order, both the same object (meaning both values reference the same object in memory), both numbers and both +0, both -0, both NaN, or both non-zero and both not NaN and both have the same value...

Approach 2: Using TypeOf Operator

...