Problém voliteľnosti zložených zátvoriek v if-else
Napriek tomu, že JavaScript umožňuje vyššie uvedené skratky so zloženými zátvorkami, ja to vo všeobecnosti neodporúčam, pretože je to živná pôda pre ťažko zachytiteľné chyby. Nech je napríklad nasledujúci kód:
let test = 3;
if (test > 0)
console.log(test);
Povedzme, že sme sa teraz rozhodli, že v prípade, ak
je podmienka splnená, vypísať ešte aj druhú
správu s textom '+++':
let test = 3;
if (test > 0)
console.log(test);
console.log('+++');
Avšak, bez zložených zátvoriek je vnútri podmienky len prvá správa. To znamená, že prvý riadok bude fungovať pri splnenej podmienke, ale druhý - vždy.
V skutočnosti je náš kód ekvivalentný tomuto:
let test = 3;
if (test > 0) {
console.log(test);
}
console.log('+++'); // tento riadok sa ocitol mimo podmienky
Ale my by sme chceli takýto kód:
let test = 3;
if (test > 0) {
console.log(test);
console.log('+++'); // tento riadok je vnútri podmienky
}
Práve preto sa odporúča vždy vykonávať umiestňovanie zložených zátvoriek, aby ste nepadli do chýb tohto druhu.