¿Por qué usar el triple igual en JavaScript para comparar?

Los lenguajes no tipados de forma explícita, como JavaScript, suelen darnos a la vez comodidad, por no tener que escribir repetidamente el tipo; y quebraderos de cabeza, por los problemas que podemos tener en ocasiones al hacer igualaciones o pasar parámetros.

Sin embargo, el lenguaje nos provee de mecanismos para poder, al menos en parte, esquivar estos problemas. Uno de ellos es usar el triple-igual, en lugar de el doble-igual, a la hora de comparar.

¿Por qué?

Porque al usar el triple-igual obligamos al intérprete a que compare también tipos. Veamos ejemplos.

Ejemplos

alert(99 == "99"); // devolverá true
alert(99 === "99"); // devolverá false

Creo que con este ejemplo queda claro. En el primer caso se devuelve verdadero porque ambos son “99” de una forma u otra, sin embargo, en el segundo, se comprueban los tipos y devuelve falso (uno es entero, el otro cadena).

Otro ejemplo típico sería el de comparar algún valor igual a cero con falso:

alert(0 == false); // devolverá true
alert(0 === false); // devolverá false

Desigualdades

Para hacer la operación inversa: “distinto de”, también existe el operador: !== que hace lo mismo que != pero añadiendo comprobación de tipos.

Para terminar comentaros que siempre podréis saber el tipo de datos de una variable usando typeof.

Author Description

F. Javier Carazo Gil

Casi Ingeniero Informático, co-fundador y administrador de Linux Hispano, además de desarrollar software y mantener sistemas en el CSIC, hace poco he fundado junto con Alberto Hornero una start-up: CODECTION donde trabajamos con software libre. Puedes saber más sobre mí, mi vida laboral, mis libros, mis artículos y mi día a día en @fjcarazo y en mi perfil público de LinkedIn.

  • Pingback: Bitacoras.com

  • http://miloq.blogspot.com/ Manuel Ignacio López Quintero

    Muy buen tutorial, la verdad es que no sabía de que al poner tres iguales comparaba también el tipo. Muchas gracias por el aporte.

  • http://www.jcarazo.com F. Javier Carazo Gil

    @Manuel Ignacio López Quintero: Gracias :), en otros lenguajes no tipados también es frecuente que exista, por ejemplo PHP: http://php.net/manual/es/language.operators.comparison.php