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:
let 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:
let 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:
let num = 3;
if (num > 0) {
console.log(num);
}
console.log('+++'); // deze regel bleek buiten de voorwaarde te staan
Terwijl we deze code wilden:
let 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.