JavaScript

Comparadores de igualdad en JavaScript

Uno de los temas que más sorprender a los usuarios al iniciarse en JavaScript es la existencia de dos operadores de igualdad: el de igualdad abstracta (==) y el de igualdad estricta (===). Algo que no suele existir en otros lenguajes. La principal diferencia de los dos comparadores de igualdad en JavaScript es que == realiza una conversión de tipos mientras que === no lo hace. Por lo que el resultado de los operadores puede ser diferente. Esto es lo que se explicará en más detalle en esta entrada.

La diferencia entre == y === en JavaScript

Como se ha explicado la diferencia entre los operadores == y === es que el primero realiza una conversión de tipos mientras que el segundo no. Pero ¿qué significa esto? El operador de igualdad abstracta (==) al realizar una conversión de tipos compara el contenido de la variable, aunque sean de tipos diferentes. Por ejemplo, cadenas de texto con numéricos o numérico con booleanos. Por otro lado, igualdad estricta (===), al no realizar una conversión de tipos, devuelve falso cuando los tipos no coinciden. Aunque los valores dentro de las variables sean iguales.

Ejemplos de uso de == y === en JavaScript

Para entender la diferencia entre == y === en JavaScript lo mejor es verlo a través de unos ejemplos. En el siguiente trozo de código se muestran diferentes comparaciones y su resultado.

true == 1   // true
true === 1  // false
1 == '1'    // true
1 === '1'   // false
1 == 1      // true
1 === 1     // true

En las dos primeras líneas se comprar un tipo de dato booleano (true) con un tipo numérico (1). Cuando se utiliza el operador == el resultado es verdadero, mientras que al utilizar === se obtienen como resultado falso. Lo que es debido a la conversión de tipos. El operador == convierte automáticamente un tipo en otros y comparar el valor resultante. Por lo que el resultado de la primera comparación es verdadero. Por otro lado, al no coincidir los tipos en el operador === el resultado es falso.

En la tercera y cuarta línea se puede ver cómo funcionan los operadores cuando se comparan un valor numérico con una cadena de caracteres. Como en el caso anterior, el operador == devuelve verdadero, aunque los tipos de datos sean diferentes. Por otro lado, el operador === solamente devuelve verdadero cuando es el mismo tipo de dato.

Finalmente, en la dos últimas líneas se puede ver que cuando el tipo de dato es el mismo los dos operadores ofrecen el mismo resultado.

Los operadores desigualdad: !=y !==

En JavaScript también existe dos operadores para evaluar la desigualdad de dos variables. Al igual que en el caso anterior el operador de desigualdad abstracta (!=) realiza una conversión de tipos mientras que el operador de desigualdad estricta (!==) no. Una comparativa de los resultados esperados con estos operadores se puede ver en el siguiente ejemplo.

true != 1   // false
true !== 1  // true
1 != '1'    // false
1 !== '1'   // true
1 != 1      // false
1 !== 1     // true

Conclusiones

En esta entrada se ha visto la diferencia que existe entre los comparadores de igualdad en JavaScript. Viendo el funcionamiento de cada uno. A la hora de trabajar la mejor opción es utilizar siempre los operadores de igualdad estrictos para tener un código más fiable. Incluso si es necesario la conversión de tipos. Siendo aconsejable hacer esta conversión de forma explícita para mejorar la legibilidad del código.

Imágenes: Pixabay (fancycrave1)

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Cómo Comparar Dos Hipotecas con Todos los Gastos Incluidos

Comparar dos hipotecas parece sencillo: la que tenga el TIN más bajo es la mejor…

4 días ago

Segmentación RFM: cómo clasificar tu cartera de clientes antes de calcular el CLV

En un artículo anterior vimos la fórmula clásica del CLV junto a sus limitaciones. Una…

6 días ago

Los récords con asterisco, o la épica del titular sin contexto – El bestiario de los indicadores económicos absurdos (parte 8 y final)

Y llegamos al final de una serie que había programado para ser de tres entradas.…

2 semanas ago

PSI: Cómo Saber Cuándo tu Modelo de Credit Scoring se ha Degradado

Un modelo de credit scoring no es un artefacto estático. Se construye en un momento…

2 semanas ago

Los indicadores que se autocumplen, o cuando medir es modificar – El bestiario de los indicadores económicos absurdos (parte 7)

En las seis entregas anteriores hemos paseado por casi todos los géneros del disparate económico:…

3 semanas ago

Customer Lifetime Value: la fórmula clásica que todo analista debería dominar

El Customer Lifetime Value (CLV) es, probablemente, la métrica más importante que puede calcular una…

3 semanas ago

This website uses cookies.