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:

javascriptlet 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 '+++':

javascriptlet 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:

javascriptlet 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:

javascriptlet 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.