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.

Sintaxis

x === y

Descripción

Los operadores de estricta igualdad (=== y !==) usan el Algoritmo Estricto Comparativo de Igualdad  para 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

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 (ECMA-262)
La definición de 'Equality operators' en esta especificación.

Compatibilidad entre exploradores

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung InternetNode.js
Strict equality (a === b)Chrome Soporte completo 1Edge Soporte completo 12Firefox Soporte completo 1IE Soporte completo 4Opera Soporte completo 4Safari Soporte completo 1WebView Android Soporte completo 1Chrome Android Soporte completo 18Firefox Android Soporte completo 4Opera Android Soporte completo 10.1Safari iOS Soporte completo 1Samsung Internet Android Soporte completo 1.0nodejs Soporte completo 0.1.100

Leyenda

Soporte completo  
Soporte completo

También revisa