2012-03-19 20 views
6

Me preguntaba cuándo la expresión Javascript if realmente evalúa a false y cuándo a true. ¿Cuándo es la declaración iffalse, y es cierto para todos los intérpretes de JS?Javascript si evaluación de la expresión

supongo que la condición es false en

  • false
  • undefined
  • null
  • 0

lo contrario true. ¿Es correcto para todas las implementaciones (probadas en la consola de Safari/WebKit), o estoy mejor con una comprobación explícita como (typeof a === "undefined")?

Respuesta

1

Si desea comprobar la existencia de variables, y no se ha declarado a cualquier parte del script, typeof a === 'undefined' es cierto, o puede utilizar if (!window.a). De lo contrario, se lanza un error de referencia.

Parece que su suposición es correcta. Una cadena vacía y NaN también evalúan a false (o, como algunos les gusta, falsy). El hecho de que 0 evalúe a false puede ser complicado, pero también es práctico, en sentencias como while (i--) (si i tiene el valor 0 se evalúa como false y el ciclo while se detiene).

Cuestiones relacionadas