Das Problem der optionalen geschweiften Klammern bei if-else
Obwohl JavaScript die oben gezeigten Abkürzungen ohne geschweifte Klammern erlaubt, rate ich im Allgemeinen davon ab, dies zu tun, da dies ein Nährboden für schwer auffindbare Fehler ist. Nehmen wir zum Beispiel den folgenden Code:
let test = 3;
if (test > 0)
console.log(test);
Nehmen wir nun an, wir haben entschieden, falls die
Bedingung erfüllt ist, eine zweite Nachricht
mit dem Text '+++' auszugeben:
let test = 3;
if (test > 0)
console.log(test);
console.log('+++');
Allerdings befindet sich ohne geschweifte Klammern nur die erste Nachricht innerhalb der Bedingung. Das bedeutet, die erste Zeile wird bei erfüllter Bedingung ausgeführt, und die zweite - immer.
Tatsächlich ist unser Code gleichbedeutend mit diesem:
let test = 3;
if (test > 0) {
console.log(test);
}
console.log('+++'); // diese Zeile befindet sich außerhalb der Bedingung
Wir hätten aber diesen Code gewollt:
let test = 3;
if (test > 0) {
console.log(test);
console.log('+++'); // diese Zeile ist innerhalb der Bedingung
}
Genau aus diesem Grund wird empfohlen, immer geschweifte Klammern zu setzen, um nicht in derartige Fehler zu geraten.