[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Object/is [Back]  [Original]

Object.is() - JavaScript | MDN

Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.

View in English Always switch to English

Object.is()

Baseline Widely available

This feature is well established and works across many devices and browser versions. Its been available across browsers since septiembre de 2015.

El mtodo Object.is() determina si dos valores son iguales.

In this article

Sntaxis

Object.is(valor1, valor2);

Parmetros

valor1

Primer valor a comparar.

valor2

Segundo valor a comparar.

Valor return del mtodo

Este mtodo devuelve un valor de tipo Boolean indicando si los valores pasados como parmetros son iguales o no.

Descripcin

Object.is() determina si dos valores son iguales. Dos valores son iguales si se puede asegurar que:

  • ambos son undefined
  • ambos son null
  • ambos son true o false
  • ambos son strings y tienen la misma longitud con los mismos carcteres
  • ambos son el mismo objeto
  • ambos son nmeros y
    • ambos +0 (mayores que 0)
    • ambos -0 (menores que 0)
    • ambos son NaN
    • o ambos no son cero o no son de tipo NaN y tienen el mismo valor

Esta comparacin no es igual a la que realiza el operador ==. El operador == aplica varias coerciones(comprobaciones) en ambos sentidos (si no tienen el mismo Type) antes de probar la igualdad (lo que resulta en comportamientos como "" == false siendo true), pero Object.is no obliga a niguno de los valores.

Esta tampoco es igual a la que realiza el operador ===. El operador === (y el operador ==) trata los valores -0 y +0 como iguales, y adems, trata Number.NaN como no igual a NaN.

Ejemplos

js
Object.is("foo", "foo"); // true
Object.is(window, window); // true

Object.is("foo", "bar"); // false
Object.is([], []); // false

var test = { a: 1 };
Object.is(test, test); // true

Object.is(null, null); // true

// Special Cases
Object.is(0, -0); // false
Object.is(-0, -0); // true
Object.is(NaN, 0 / 0); // true

Polyfill para navegadores no ES6

Object.is() es una adicin propuesta en el estandar ECMA-262; y como tal, puede no estar presente en todos los navegadores. Para los casos en que no tenga disponible este mtodo, podra utilizar este cdigo haciendolo que se cargue antes que cualquier otro script. Esto permite que puedas utilizar Object.is() en los navegadores que no lo llevan includo.

js
if (!Object.is) {
  Object.is = function (x, y) {
    // SameValue algorithm
    if (x === y) {
      // Steps 1-5, 7-10
      // Steps 6.b-6.e: +0 != -0
      return x !== 0 || 1 / x === 1 / y;
    } else {
      // Step 6.a: NaN == NaN
      return x !== x && y !== y;
    }
  };
}

Especificaciones

Specification
ECMAScript 2027 LanguageSpecification
# sec-object.is

Compatibilidad con navegadores

Ver tambin


Web Proxy Viewer  |  New URL  |  Original Page