Iekavu neobligātības problēma if-else konstrukcijās
Lai gan JavaScript pieļauj iepriekš parādītos saīsinājumus ar cirtainajām iekavām, es kopumā to neiesaku darīt, jo tās ir grūti pamanāmu kļūdu avots. Piemēram, pieņemsim, ka ir šāds kods:
let test = 3;
if (test > 0)
console.log(test);
Pieņemsim, ka tagad mēs nolēmām, ja
nosacījums ir izpildīts, izvadīt arī otro
ziņu ar tekstu '+++':
let test = 3;
if (test > 0)
console.log(test);
console.log('+++');
Tomēr bez cirtainajām iekavām nosacījuma ietvaros atrodas tikai pirmā ziņa. Tas nozīmē, ka pirmā rinda tiks izpildīta ja nosacījums ir patiess, bet otrā - vienmēr.
Faktiski mūsu kods ir līdzvērtīgs šādam:
let test = 3;
if (test > 0) {
console.log(test);
}
console.log('+++'); // šī rinda izrādījās ārpus nosacījuma
Bet mēs gribējām šādu kodu:
let test = 3;
if (test > 0) {
console.log(test);
console.log('+++'); // šī rinda ir nosacījuma ietvaros
}
Tieši tāpēc ieteicams vienmēr izmantot cirtainās iekavas, lai neiekļūtu šāda veida kļūdās.