JavaScripti if-else konstruktsioonides lokkis sulgude mittekohustuslikkuse probleem
Hoolimata asjaolust, et JavaScript võimaldab eelpool näidatud lühendeid lokkis sulgudega, soovitan ma üldiselt nii mitte teha, kuna see on raskesti tabatavate vigade pesapaik. Oletame näiteks, et on olemas järgmine kood:
let test = 3;
if (test > 0)
console.log(test);
Oletame nüüd, et otsustasime juhul, kui
tingimus on täidetud, väljastada ka teise
sõnumi tekstiga '+++':
let test = 3;
if (test > 0)
console.log(test);
console.log('+++');
Siiski, ilma lokkis sulgudeta jääb tingimuse sisse ainult esimene sõnum. See tähendab, et esimene rida käivitub õige tingimuse korral ja teine - alati.
Tegelikult on meie kood samaväärne sellega:
let test = 3;
if (test > 0) {
console.log(test);
}
console.log('+++'); // see rida jäi tingimusest väljapoole
Kuid meie tahaksime sellist koodi:
let test = 3;
if (test > 0) {
console.log(test);
console.log('+++'); // see rida on tingimuse sees
}
Just seetõttu on soovitatav alati teha lokkis sulgude paigutus, et mitte sattuda sellistesse vigadesse.