Comparación de igualdad abstracta y estricta en JavaScript

He visto en diversas comparaciones la igualdad doble == y triple === ¿Cuál es realmente la diferencia entre ambos?

  • Comparación de igualdad abstracta o débil(==)
  • Comparación de igualdad estricta o identidad( ===)

Con == , si los operandos tienen tipos diferentes, JavaScript trata de convertirlos para que sean comparables, es decir, llevan a cabo una conversión de tipo al momento de comparar. Por ejemplo:

1 == "1"   // true
true == 1 // true
[] == 0 // true

En cambio, con === significa que si los operandos tienen tipos diferentes, no son iguales. El triple igual no realiza ninguna conversión de tipo:

1 === "1"   // false
true === 1 // false
[] === 0 // false

Dada las similitudes y algunas ambigüedad de este operador, en la tabla siguiente se puede apreciar un resumen de ambos.

Es claro que ambos se usan para comparar, la diferencia radica en cómo deciden la igualdad. JavaScript puede convertir el valor de un tipo a otro, dependiendo del contexto. Por ejemplo,

"1" + 1  // Muestra 11
"8" * 2 // Muestra 16

JavaScript convierte implícitamente el string “8” en un número porque deduce, por el contexto, que se quiere multiplicar dos números.

Algo particular ocurre con los tipos de datos por referencia. Dos objects son estrictamente iguales si se refieren al mismo objecto. Por ejemplo,

var x = { a: 1, b: 2 };
var y = { a: 1, b: 2 };
var z = x;

x === y // false
x === z // true

Espera… ¿Y por qué x === y es false?

En este caso lo que se compara es la referencia, es decir que apunten al mismo objeto para ello se comprueba que estén en la misma posición de memoria.

x === y es false porque x e y no apuntan al mismo objeto, apuntan a objetos diferentes cuyas propiedades da la casualidad que tienen los mismos valores.

Zurvin

Somon cinturón negro en JavaScript.

Yerson Carhuallanqui

Written by

Hi, I’m a User Interface Developer, living in Perú. https://zurvin.com

Zurvin

Zurvin

Somon cinturón negro en JavaScript.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade