É muito comum vermos por ai alguns códigos como este.
var canSave = someFunction();
if(canSave != null && canSave != undefined && canSave) {
/*Do something*/
}
Batendo olho nesse código é possível concluir que a variável canSave deveria armazenar um valor Boolean , mas como o Javascript não é fortemente tipado pode acontecer dessa váriavel receber null ou undefined . O que resulta na verificação tosca dentro da condição If acima.
Felizmente tem um forma de evitar que uma variável receba null ou undefined indevidamente através do operador ||
var canSave = someFunction() || false;
if(canSave) { /*Do something*/ }
O operador || no código acima indica que se a função someFunction() retornar null, undefined ou até mesmo false a variável canSave será setada com o valor definido após o operador || , ou seja, recebera um valor padrão pre-definido pelo programador. Eu gosto muito dessa abordagem porque evita comparações desnecessárias e garante que a variável será setada com um valor do tipo certo.
Boa! Abordagem clara e direta. É assim que tem de ser.