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.
Ver comentarios
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.
@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
Excelente debate del triple igual