Il problema dell'opzionalità delle parentesi graffe in if-else
Nonostante JavaScript permetta le abbreviazioni mostrate sopra con le parentesi graffe, in generale non lo consiglio, poiché è un covo di errori difficili da individuare. Supponiamo ad esempio che ci sia il seguente codice:
let num = 3;
if (num > 0)
console.log(num);
Ora supponiamo di aver deciso che se
la condizione è soddisfatta, vogliamo visualizzare anche un secondo
messaggio con il testo '+++':
let num = 3;
if (num > 0)
console.log(num);
console.log('+++');
Tuttavia, senza le parentesi graffe, all'interno della condizione si trova solo il primo messaggio. Cioè la prima riga verrà eseguita se la condizione è vera, mentre la seconda - sempre.
Di fatto, il nostro codice è equivalente a questo:
let num = 3;
if (num > 0) {
console.log(num);
}
console.log('+++'); // questa riga è finita fuori dalla condizione
Mentre noi vorremmo un codice così:
let num = 3;
if (num > 0) {
console.log(num);
console.log('+++'); // questa riga è dentro la condizione
}
Proprio per questo si raccomanda di eseguire sempre l'impostazione delle parentesi graffe, per non incorrere in errori di questo tipo.