A armadilha de usar || Como Fallback em Javascript

Recentemente, eu estava testando um javascript com um colega de trabalho e encontramos o equivalente a isto:

var baz = foo || bar;

Onde baz deveria ser definido como bar se foo não existisse.

Este parece ser um equívoco comum de um fallback aceitável, para uma variável ser indefinida, mas fará com que o mecanismo de javascript grite com você que “foo não está definido” e falhe.

A maneira certa de fazer isso é verificar se foo ou bar estão indefinidos:

var baz;

if (typeof foo !== 'undefined') {
baz
= foo;
} else if (bar !== 'undefined') {
baz
= bar;
} else {
baz
= null;
}

Evite que futuros desenvolvedores trabalhem em sua frustração com o código e seja cauteloso ao não presumir a existência de variáveis ​​e verifique-as primeiro.