Читать книгу JavaScript für Ungeduldige - Cay Horstmann - Страница 67
Vorsicht
ОглавлениеWenn Sie bei if/else-Anweisungen keine geschweiften Klammern verwenden oder nicht dem »einzig wahren Stil« folgen, kann es sein, dass Ihr Code zwar in einer Programmdatei funktioniert, aber fehlschlägt, wenn Sie ihn in eine JavaScript-Konsole kopieren. Betrachten Sie das folgende Beispiel:
if (yourSales > target)
bonus = 100
else
bonus = 0
Einige JavaScript-Konsolen analysieren den Code Zeile für Zeile, sodass sie die if-Anweisung für abgeschlossen halten, bevor sie auf die else-Klausel stoßen. Um dieses Problem zu vermeiden, sollten Sie geschweifte Klammern verwenden oder die gesamte if-Anweisung in eine einzige Zeile schreiben:
if (yourSales > target) bonus = 100; else bonus = 0
Manchmal kann es praktisch sein, einen Ausdruck zur Verfügung zu haben, der wie eine if-Anweisung funktioniert. Nehmen wir an, Sie wollen den größeren von zwei Werten bestimmen:
let max = undefined
if (x > y) max = x; else max = y
Es wäre schöner, wenn wir max stattdessen einfach mit dem größeren der beiden Werte x und y initialisieren könnten. Da if eine Anweisung ist, können wir jedoch nicht einfach Folgendes schreiben:
let max = if (x > y) x else y // Fehler: if-Anweisung ist unerwartet
Stattdessen können Sie den Bedingungsoperator?: verwenden. Der Ausdruck Bedingung ? erster Ausdruck : zweiter Ausdruck wird zum ersten Ausdruck ausgewertet, wenn die Bedingung erfüllt ist, und ansonsten zum zweiten. Dadurch können wir unser Problem wie folgt lösen:
let max = x > y ? x : y