Igualdad Estricta (===)

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

The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.

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 son undefined, produce true.
  • 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 ser false.

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 Language Specification
# sec-equality-operators

Compatibilidad con navegadores

BCD tables only load in the browser

También revisa