Igualdad Estricta (===)
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
El operador de estricta igualdad (===
) revisa si dos operandos son iguales y produce un resultado Booleano. A diferencia del operador de igualdad regular (==), el operador de estricta igualdad siempre considera que los operandos de distinto tipo de valor son diferentes y nunca similares.
Pruébalo
Sintaxis
x === y
Descripción
Los operadores de estricta igualdad (===
y !==
) usan el Algoritmo Estricto Comparativo de Igualdadpara comparar dos operandos:
-
Si los operandos son de diferente tipo de valor, produce
false
. -
Si ambos operandos son objetos, produce
true
solo si se refiere al mismo objeto. -
Si ambos operandos son de tipo
null
o ambos operandos sonundefined
, producetrue
. -
Si cualquier operando es de tipo NaN, produce
false
. -
En otros casos, compara los valores de ambos operandos:
- Los números deben tener el mismo valor numérico, aunque
+0
y-0
son considerados como del mismo valor. - Los strings deben tener los mismos caracteres en el mismo orden.
- Los booleanos deben ambos ser
true
o ambos serfalse
.
- Los números deben tener el mismo valor numérico, aunque
La diferencia más notable entre este operador y el operador de igualdad regular (==
) es que si los operandos son de distinto tipo de valor, el operador ==
intenta convertir los valores a un mismo tipo de dato antes de compararlos.
Ejemplos
Comparando operandos del mismo tipo
console.log("hello" === "hello"); // true
console.log("hello" === "hola"); // false
console.log(3 === 3); // true
console.log(3 === 4); // false
console.log(true === true); // true
console.log(true === false); // false
console.log(null === null); // true
Comparando operandos de distinto tipo
console.log("3" === 3); // false
console.log(true === 1); // false
console.log(null === undefined); // false
Comparando objetos
const object1 = {
name: "hello",
};
const object2 = {
name: "hello",
};
console.log(object1 === object2); // false
console.log(object1 === object1); // true
Especificaciones
Specification |
---|
ECMAScript Language Specification # sec-equality-operators |
Compatibilidad con navegadores
BCD tables only load in the browser