Problema de la opcionalidad de las llaves en if-else

A pesar de que JavaScript permite las abreviaturas mostradas anteriormente con llaves, en general no recomiendo hacerlo, ya que es un foco de errores difíciles de detectar. Supongamos, por ejemplo, que existe el siguiente código:

javascriptlet test = 3;

if (test > 0)
  console.log(test);

Supongamos ahora que decidimos que si la condición se cumple, mostrar también un segundo mensaje con el texto '+++':

javascriptlet test = 3;

if (test > 0)
  console.log(test);
  console.log('+++');

Sin embargo, sin llaves, dentro de la condición solo se encuentra el primer mensaje. Es decir, la primera línea se ejecutará si la condición es verdadera, y la segunda, siempre.

En realidad, nuestro código es equivalente a este:

javascriptlet test = 3;

if (test > 0) {
  console.log(test);
}

console.log('+++'); // esta línea quedó fuera de la condición

Y nosotros queríamos un código así:

javascriptlet test = 3;

if (test > 0) {
  console.log(test);
  console.log('+++'); // esta línea está dentro de la condición
}

Precisamente por esto se recomienda siempre colocar las llaves, para no caer en este tipo de errores.