A kapcsos zárójelek opcionális voltának problémája if-else-ben

Annak ellenére, hogy a JavaScript megengedi a fent bemutatott rövidítéseket a kapcsos zárójelekkel, én általában nem ajánlom ezt megtenni, mivel ez nehezen megfogható hibák forrása. Legyen például a következő kód:

javascriptlet num = 3;

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

Tegyük fel, hogy most úgy döntöttünk, ha a feltétel teljesül, kiírunk egy második üzenetet is a '+++' szöveggel:

javascriptlet num = 3;

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

Azonban kapcsos zárójelek nélkül csak az első üzenet tartozik a feltételhez. Vagyis az első sor a feltétel teljesülésekor fog lefutni, a második pedig mindig.

Valójában a kódunk ekvivalens ezzel:

javascriptlet num = 3;

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

console.log('+++'); // ez a sor a feltételen kívülre került

Mi viszont valószínűleg egy ilyen kódot szerettünk volna:

javascriptlet num = 3;

if (num > 0) {
  console.log(num);
  console.log('+++'); // ez a sor a feltételen belül van
}

Pontosan ezért ajánlott mindig elvégezni a kapcsos zárójelek elhelyezését, hogy ne essünk ilyen hibák áldozatául.