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:

javascriptlet 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 '+++':

javascriptlet 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:

javascriptlet num = 3;

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

console.log('+++'); // denne linje endte uden for betingselsen

Men vi havde ønsket en kode som denne:

javascriptlet 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.