Problemet med valgfrie krøllede parenteser i if-else
På trods af at JavaScript tillader de viste ovenstående forkortelser med krøllede parenteser, så anbefaler jeg generelt ikke at gøre det, da det er en kilde til vanskeligt opdagelige fejl. Lad os for eksempel have følgende kode:
let num = 3;
if (num > 0)
console.log(num);
Lad os nu sige, at vi besluttede, at hvis
betingselsen er opfyldt, også at vise en anden
besked med teksten '+++':
let num = 3;
if (num > 0)
console.log(num);
console.log('+++');
Dog, uden krøllede parenteser, er det kun den første besked der befinder sig inde i betingselsen. Det vil sige, den første linje vil udføres når betingselsen er sand, og den anden - altid.
Faktisk svarer vores kode til dette:
let num = 3;
if (num > 0) {
console.log(num);
}
console.log('+++'); // denne linje endte uden for betingselsen
Men vi havde ønsket en kode som denne:
let num = 3;
if (num > 0) {
console.log(num);
console.log('+++'); // denne linje er inde i betingselsen
}
Netop derfor anbefales det altid at anvende krøllede parenteser, for ikke at løbe ind i fejl af denne art.