O problema da opcionalidade das chaves no if-else
Apesar de o JavaScript permitir as abreviações mostradas acima com chaves, eu, de um modo geral, não recomendo fazer isso, pois é um criadouro de erros difíceis de detectar. Suponha, por exemplo, que exista o seguinte código:
let test = 3;
if (test > 0)
console.log(test);
Suponha agora que decidimos que, caso a
condição seja atendida, exiba também uma segunda
mensagem com o texto '+++':
let test = 3;
if (test > 0)
console.log(test);
console.log('+++');
No entanto, sem as chaves, apenas a primeira mensagem está dentro da condição. Ou seja, a primeira linha será executada se a condição for verdadeira, e a segunda - sempre.
Na verdade, nosso código é equivalente a este:
let test = 3;
if (test > 0) {
console.log(test);
}
console.log('+++'); // esta linha ficou fora da condição
E nós gostaríamos deste código:
let test = 3;
if (test > 0) {
console.log(test);
console.log('+++'); // esta linha está dentro da condição
}
É por isso que é recomendável sempre colocar as chaves, para não cair nesse tipo de erro.