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:
let 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:
let 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:
let 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:
let 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.