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