Problém nepovinnosti složených závorek v if-else

Navzdory tomu, že JavaScript připouští výše uvedená zkrácení se složenými závorkami, já to obecně nedoporučuji dělat, protože to je semeniště těžko postižitelných chyb. Nechť je například následující kód:

javascriptlet num = 3;

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

Nechť jsme se nyní rozhodli, že v případě, že je podmínka splněna, vypisovat ještě i druhou zprávu s textem '+++':

javascriptlet num = 3;

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

Avšak, bez složených závorek je uvnitř podmínky pouze první zpráva. To znamená, že první řádek bude fungovat při splněné podmínce, a druhý - vždy.

Fakticky je náš kód ekvivalentní tomuto:

javascriptlet num = 3;

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

console.log('+++'); // tento řádek se ocitl mimo podmínku

A my bychom chtěli takový kód:

javascriptlet num = 3;

if (num > 0) {
  console.log(num);
  console.log('+++'); // tento řádek je uvnitř podmínky
}

Právě proto se doporučuje vždy provádět rozmístění složených závorek, aby člověk neupadl do chyb tohoto druhu.