Javascript: || En lugar de la declaración IF: ¿es válido este navegador y el navegador cruzado?

Parece que:

if (typeof a == 'undefined') {
    a = 0;
}

y

(typeof a != 'undefined') || (a = 0)

Tiene el mismo efecto en Javascript.

Realmente me gusta el segundo porque es corto, un código de línea, pero ¿es esto legal y válido para todos los navegadores? Quiero decir, jslint dice que tiene errores. ¿Debo usarlo sin preocupaciones?

Respuestas a la pregunta(2)

Su respuesta a la pregunta