Triple y doble igualdad
1. Diferencia entre == y === en JavaScript #
En JavaScript, == y === son operadores de comparación que se utilizan para verificar si dos valores son iguales. Aunque ambos se usan para comparar, hay una diferencia clave en cómo lo hacen.
== (Comparación de igualdad) #
El operador == compara dos valores para ver si son iguales. Sin embargo, antes de hacer la comparación, convierte (o "coerce") los valores a un tipo común si son de diferentes tipos.
Ejemplos:
1console.log(5 == "5"); // true 2console.log(true == 1); // true 3console.log(null == undefined); // trueSalida de consola true true true
En estos ejemplos:
5 == "5"estrueporque JavaScript convierte la cadena"5"en el número5antes de compararlos.true == 1estrueporquetruese convierte en1.null == undefinedestrueporque JavaScript considera que ambos representan "ausencia de valor".
=== (Comparación de igualdad estricta) #
El operador === también compara dos valores para ver si son estrictamente iguales, pero no realiza ninguna conversión de tipos. Para que === devuelva true, los valores deben ser del mismo tipo y tener el mismo valor.
Ejemplos:
1console.log(5 === "5"); // false 2console.log(true === 1); // false 3console.log(null === undefined); // falseSalida de consola false false false
En estos ejemplos:
5 === "5"esfalseporque los tipos no coinciden (numbervs.string).true === 1esfalseporquetruees un valor booleano y1es un número.null === undefinedesfalseporque aunque ambos representan "ausencia de valor", son tipos diferentes.
Resumen del tema
Conceptos clave #
- Igualdad Débil (
==/ Coerción Implícita): convierte operandos de distinto tipo a un tipo común antes de comparar ("5" == 5estrue,null == undefinedestrue). - Igualdad Estricta (
===/ Sin Coerción): comprueba que tanto el tipo de dato como el valor sean idénticos ("5" === 5esfalse). - Desigualdad: misma lógica para
!=(débil) vs!==(estricta). - Comparación de Objetos: tanto
==como===comparan referencia en memoria ({} === {}esfalse).
Qué debes recordar #
Utiliza siempre el operador de triple igualdad (===) para evitar fallos lógicos por coerción implícita de tipos.