Het probleem van de optionele accolades in if-else
Ondanks het feit dat JavaScript de hierboven getoonde afkortingen met accolades toestaat, raad ik dit over het algemeen niet aan, omdat het een broedplaats is voor moeilijk te vinden fouten. Stel dat we de volgende code hebben:
javascriptlet num = 3;
if (num > 0)
console.log(num);
Stel dat we nu besloten hebben, als
aan de voorwaarde is voldaan, ook een tweede
bericht met de tekst '+++' weer te geven:
javascriptlet num = 3;
if (num > 0)
console.log(num);
console.log('+++');
Echter, zonder accolades bevindt zich binnen de voorwaarde alleen het eerste bericht. Dat wil zeggen, de eerste regel wordt uitgevoerd als aan de voorwaarde is voldaan, en de tweede - altijd.
In feite is onze code equivalent aan deze:
javascriptlet num = 3;
if (num > 0) {
console.log(num);
}
console.log('+++'); // deze regel bleek buiten de voorwaarde te staan
Terwijl we deze code wilden:
javascriptlet num = 3;
if (num > 0) {
console.log(num);
console.log('+++'); // deze regel staat binnen de voorwaarde
}
Daarom is het aan te raden om altijd de accolades te plaatsen, om niet in dit soort fouten te trappen.