En ES6, ¿qué hace 'Object.is()'?

Entendiendo el método 'Object.is()' en ES6

El método Object.is() en ECMAScript 6 (ES6) es una operación de comparación que verifica si dos valores son el mismo valor. Esto puede parecer inicialmente similar al operador de igualdad estricta (===), pero Object.is() tiene algunas diferencias sutiles pero cruciales.

console.log(Object.is(42, 42));        // true
console.log(Object.is('foo', 'foo'));  // true
console.log(Object.is(false, false));  // true
console.log(Object.is(null, null));    // true
console.log(Object.is(undefined, undefined)); // true
console.log(Object.is(NaN, NaN));      // true

Como vemos en los ejemplos anteriores, Object.is() devuelve true cuando los dos valores son exactamente los mismos. Incluso considera NaN igual a NaN, que es un comportamiento inusual, ya que el operador === no considera que NaN sea igual a NaN.

console.log(NaN === NaN);              // false
console.log(Object.is(NaN, NaN));      // true

Otro punto donde Object.is() difiere del operador === es la comparación de +0 y -0. En JavaScript, +0 y -0 son considerados iguales por el operador ===, pero Object.is() considera estos dos valores como diferentes.

console.log(+0 === -0);                // true
console.log(Object.is(+0, -0));        // false

Object.is() resulta ser útil en situaciones donde necesitamos una comparación de valores muy precisa que se encarga de estos casos especiales. Aunque menos comúnmente usado que el operador ===, Object.is() puede ser una herramienta valiosa en el arsenal cuando se trabaja con JavaScript y la congruencia exacta es necesaria.

¿Te resulta útil?