Le problème de l'optionalité des accolades dans les structures if-else

Bien que JavaScript autorise les raccourcis présentés ci-dessus avec les accolades, je ne recommande généralement pas de le faire, car c'est un nid d'erreurs difficiles à détecter. Prenons par exemple le code suivant :

javascriptlet test = 3;

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

Supposons maintenant que nous ayons décidé, dans le cas où la condition est remplie, d'afficher également un deuxième message avec le texte '+++' :

javascriptlet test = 3;

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

Cependant, sans les accolades, seule la première instruction se trouve à l'intérieur de la condition. Autrement dit, la première ligne s'exécutera si la condition est vraie, et la seconde - toujours.

En fait, notre code est équivalent à celui-ci :

javascriptlet test = 3;

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

console.log('+++'); // cette ligne s'est retrouvée en dehors de la condition

Alors que nous souhaitions un code comme celui-ci :

javascriptlet test = 3;

if (test > 0) {
  console.log(test);
  console.log('+++'); // cette ligne est à l'intérieur de la condition
}

C'est pourquoi il est recommandé de toujours utiliser les accolades, afin de ne pas tomber dans ce genre d'erreurs.