Garbanotinių skliaustų neprivalomumo problema if-else konstrukcijoje

Nepaisant to, kad JavaScript leidžia aukščiau parodytus sutrumpinimus su garbanotiniais skliaustais, aš paprastai nerekomenduoju taip daryti, nes tai yra sunkiai pastebimų klaidų šaltinis. Tarkime, pavyzdžiui, yra toks kodas:

javascriptlet test = 3;

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

Tarkime, kad dabar nusprendėme, jei sąlyga tenkinama, išvesti ir antrą pranešimą su tekstu '+++':

javascriptlet test = 3;

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

Tačiau, be garbanotinių skliaustų, sąlygos viduje yra tik pirmasis pranešimas. Tai yra, pirmoji eilutė bus vykdoma esant teisingai sąlygai, o antroji – visada.

Faktiškai mūsų kodas yra ekvivalentus šiam:

javascriptlet test = 3;

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

console.log('+++'); // ši eilutė pasirodė už sąlygos ribų

O mes norėtume tokį kodą:

javascriptlet test = 3;

if (test > 0) {
  console.log(test);
  console.log('+++'); // ši eilutė yra sąlygos viduje
}

Būtent todėl rekomenduojama visada dedti garbanotuosius skliaustus, kad nepatiktumėte į tokias klaidas.