El uso de variables indefinidas en sentencias if

Este fragmento da como resultado un error de tiempo de ejecución de JavaScript: foo no está definido

if (foo) {
    // ...
}

Tengo que definirfoo primero, así:

var foo = foo || null // or undefined, 0, etc.

... Y solo entonces puedo hacer:

if (foo) {
    // ...
}

¿Porqué es eso


Actualizar

Esto fue algo así como una lluvia de ideas en mi lado de las cosas: 'por supuesto, no puedes acceder a una variable que no está asignada.

Fun cosas que puedes hacer un typeof () en una variable indefinida tú. Voy a aceptar micceta respuesta de @ ya que creo que es la solución más elegante.

Respuestas a la pregunta(6)

Su respuesta a la pregunta