JavaScript === vs ==
Los operadores de comparación nos ayudan a determinar si dos variables son iguales o siguen un criterio específico. Si los resultados de la comparación son favorables, devuelve true
; de lo contrario, devuelve false
. Este tutorial explica el tema más confuso entre los operadores de comparación y enseña cuándo usar cuál operador es igual (==
o ===
).
Un simple igual a =
es bastante diferente de un doble igual a ==
y un triple igual a ===
porque es una operación de asignación y son operadores de comparación. Por lo tanto, la confusión es generalmente entre ==
y ===
.
Operador de igualdad flexible (==
) en JavaScript
El operador ==
u operador de igualdad también se denomina operador de comparación abstracta. Se llama abstracto porque solo se ocupa del valor y no del tipo de variable. El operador ==
realiza la conversión de valores de variable al mismo tipo (coerción de tipo) antes de compararlos entre sí y devuelve verdadero si los operandos convertidos son iguales. Dado que el operador tiene que realizar la conversión de tipos, tiende a ser un poco más lento que el operador ===
.
Ahora, para entender cuándo usar qué operador, primero tenemos que entender un poco sobre la coerción de tipos. Es de dos tipos:
- Coerción explícita: se realiza de forma explícita a través de código utilizando métodos integrados. Por ejemplo: Para convertir una cadena
"42"
en un número, tenemos que escribirNumber("42")
. De esta manera, usamos el método de conversión de tipo explícitoNúmero()
para convertir una cadena en un número. - Coacción implícita: La hace implícitamente el lenguaje. Generalmente se realiza cuando usamos dos tipos diferentes de operando con un operador. Por ejemplo: Si realizamos
1 + ""
. Hay un número y una cadena que no se pueden agregar directamente, por lo que el tipo de JavaScript convierte el número en una cadena, ya que es la única forma en que se pueden agregar y devuelve una cadena"1"
.
23 == '23' // returns true
true + false == 1 // returns true
undefined ==
null // returns true
[] == 0 // returns true
Operador de igualdad estricta (===
) en JavaScript
El operador ===
u operador de identidad también se denomina operador de comparación estricta. Se llama estricto porque devuelve verdadero solo cuando tanto el tipo como el valor de ambos operandos son iguales. No realiza ningún tipo de conversión; por lo tanto, tiende a ser más rápido que el operador ==
.
true === true // returns true
true === 1 // returns false
Por tanto, la decisión de elegir el operador ==
o ===
se basa en la necesidad de una coerción de tipo. Si uno no está familiarizado con la coerción de tipos, debe seguir con el operador de igualdad estricta.
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn