Javascript: || em vez da instrução IF - este navegador válido e cruzado é válido?

Parece que:

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

e

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

tem o mesmo efeito em Javascript.

Eu realmente gosto do segundo porque é curto, um código de linha, mas isso é legal e cross-browser válido? Quero dizer, jslint diz que tem erros. Devo usá-lo sem preocupações?