Problema opționalității acoladelor în if-else
În ciuda faptului că JavaScript permite prescurtările demonstrate mai sus cu acolade, eu, în general, nu recomand să faceți asta, deorece este un focar de greșeli greu de depistat. Să presupunem că există următorul cod:
let num = 3;
if (num > 0)
console.log(num);
Să presupunem că acum am decis că, dacă
condiția este îndeplinită, să afișăm și un al doilea
mesaj cu textul '+++':
let num = 3;
if (num > 0)
console.log(num);
console.log('+++');
Cu toate acestea, fără acolade, în interiorul condiției se află doar primul mesaj. Adică primul rând se va executa în cazul în care condiția este adevărată, iar al doilea - întotdeauna.
De fapt, codul nostru este echivalent cu acesta:
let num = 3;
if (num > 0) {
console.log(num);
}
console.log('+++'); // acest rând a rămas în afara condiției
Însă noi am vrea acest cod:
let num = 3;
if (num > 0) {
console.log(num);
console.log('+++'); // acest rând este în interiorul condiției
}
Tocmai de aceea este recomandat să faceți întotdeauna plasarea acoladelor, pentru a nu cădea în astfel de erori.