¿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.