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 :
let 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 '+++' :
let 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 :
let 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 :
let 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.