Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/05/2013, 05:45
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Diferencia entre estos operadores

Javascript es un lenguage muy débilmente tipado; algunas operaciones hacen un "casting" del tipo de variable, es decir, la convierten de un tipo a otro según el contexto, automáticamente; lo que a veces puede provocar un desastre. La conversión trabaja de izquierda a derecha.

Ejemplo var suma = "1" + 1, el resultado será "11" porque convertirá el 1 en "1" automáticamente ya que el primer operador era un string.

Sin embargo var suma = 1 + "1" será ahora 2, porque ahora lo convirtió a número entero.

El operador de igualdar == hace la conversión antes de comparar, así que 1=="1" es true,
1==true es true (cualquier número distinto de cero lo convierte a true), ""==false es true (la cadena vacía la convierte en FALSE), etc.

Sin embargo, la comparación con el tripe igual, === no hace la conversión, asi que "1" === 1 es FALSE. O dicho de otro modo, el tirpe igual se asegura que el TIPO de dato y su valor sean exactamente iguales. Por ello, se suele recomendar el uso de === en vez de == para la inmensa mayoría de las ocasiones.