Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
Object.is()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since septiembre de 2015.
El métodoObject.is() determina si dos valoresson iguales.
In this article
- Síntaxis
- Descripción
- Ejemplos
- Polyfill para navegadores no ES6
Síntaxis
Object.is(valor1, valor2);
Parámetros
Valor return del método
Este método devuelve un valor de tipoBoolean indicando si los valores pasados como parámetros son iguales o no.
Descripción
Object.is() determina si dos valoresson iguales. Dos valores son iguales si se puede asegurar que:
- ambos son
undefined - ambos son
null - ambos son
trueofalse - ambos son strings y tienen la misma longitud con los mismos carácteres
- ambos son el mismo objeto
- ambos son números y
Esta comparaciónno 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 siendotrue), peroObject.is no obliga a niguno de los valores.
Estatampoco es igual a la que realiza el operador===. El operador=== (y el operador==) trata los valores-0y +0 como iguales, y además, trataNumber.NaN como no igual aNaN.
Ejemplos
Object.is("foo", "foo"); // trueObject.is(window, window); // trueObject.is("foo", "bar"); // falseObject.is([], []); // falsevar test = { a: 1 };Object.is(test, test); // trueObject.is(null, null); // true// Special CasesObject.is(0, -0); // falseObject.is(-0, -0); // trueObject.is(NaN, 0 / 0); // truePolyfill para navegadores no ES6
Object.is() es una adición 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 método, podría utilizar este código haciendolo que se cargue antes que cualquier otro script. Esto permite que puedas utilizarObject.is() en los navegadores que no lo llevan incluído.
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® 2026 Language Specification> # sec-object.is> |
Compatibilidad con navegadores
Ver también
- Comparadores de igualdad e identidad —Una comparación de las 3 operaciones de cotejamiento integradas.