Igualdad Estricta (===) - JavaScript | MDN
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 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
console.log(1 === 1);
// Expected output: true
console.log("hello" === "hello");
// Expected output: true
console.log("1" === 1);
// Expected output: false
console.log(0 === false);
// Expected output: false
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
truesolo si se refiere al mismo objeto. - Si ambos operandos son de tipo
nullo 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
+0y-0son considerados como del mismo valor. - Los strings deben tener los mismos caracteres en el mismo orden.
- Los booleanos deben ambos ser
trueo 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
js
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
js
console.log("3" === 3); // false
console.log(true === 1); // false
console.log(null === undefined); // false
Comparando objetos
js
const object1 = {
name: "hello",
};
const object2 = {
name: "hello",
};
console.log(object1 === object2); // false
console.log(object1 === object1); // true
Especificaciones
| Specification |
|---|
| ECMAScript® 2026 Language Specification # sec-equality-operators |