Название | JavaScript – Das Handbuch für die Praxis |
---|---|
Автор произведения | David Flanagan |
Жанр | Математика |
Серия | |
Издательство | Математика |
Год выпуска | 0 |
isbn | 9783960104926 |
for(let i=0, j=10; i < j; i++, j--) {
console.log(i+j);
}
4.14Zusammenfassung
Dieses Kapitel deckt eine Vielzahl von Themen ab und enthält eine Menge Referenzmaterial, zu dem Sie vielleicht im weiteren Verlauf Ihrer Arbeit mit JavaScript zurückkehren möchten. Einige wichtige, merkenswerte Punkte aus diesem Kapitel:
Ausdrücke sind die (in 1.3 so bezeichneten) »Phrasen« eines JavaScript-Programms.
Jeder Ausdruck kann zu einem JavaScript-Wert ausgewertet werden.
Ausdrücke erzeugen nicht nur Werte, sondern können auch Seiteneffekte haben, beispielsweise eine Variablenzuweisung.
Einfache Ausdrücke wie Literale, Variablenreferenzen und Eigenschaftszugriffe können mit Operatoren kombiniert werden, um komplexere Ausdrücke zu erzeugen.
JavaScript bietet Operatoren für Arithmetik, Vergleiche, boolesche Logik, Zuweisungen und bitweise Manipulationen sowie verschiedene andere Operatoren einschließlich des ternären Bedingungsoperators.
Der Operator + kann sowohl Zahlen addieren als auch Strings verketten.
Die logischen Operatoren && und || haben ein spezielles »kurzschließendes« Verhalten und werten manchmal nur eines ihrer Argumente aus. Da von diesem speziellen Verhalten in vielen Fällen Gebrauch gemacht wird, sollten Sie die Funktionsweise dieser Operatoren genau verstehen.
KAPITEL 5
Anweisungen
In Kapitel 4 haben wir Ausdrücke als JavaScript-Phrasen bezeichnet. Folgt man dieser Analogie, könnte man Anweisungen als JavaScript-Sätze oder -Befehlsformen betrachten. So wie man im Englischen und Deutschen und in vielen anderen Sprachen Sätze mit Punkten beendet und voneinander abgrenzt, werden JavaScript-Anweisungen mit Semikola (siehe 2.6) beendet. Ausdrücke werden ausgewertet, um einen Wert zu erzeugen, Anweisungen hingegen werden ausgeführt, um etwas geschehen zu lassen.
Eine Möglichkeit, »etwas geschehen zu lassen«, ist die Auswertung eines Ausdrucks, der Seiteneffekte hat. Ausdrücke mit Seiteneffekten, wie etwa Zuweisungen oder Funktionsaufrufe, können eigenständig als Anweisungen stehen und werden bei dieser Art der Verwendung als Ausdrucksanweisungen bezeichnet. Eine ähnliche Kategorie von Anweisungen sind die Deklarationsanweisungen, mit denen neue Variablen deklariert und neue Funktionen definiert werden.
JavaScript-Programme sind nichts anderes als eine Folge von Anweisungen, die ausgeführt werden sollen. Standardmäßig führt der JavaScript-Interpreter diese Anweisungen nacheinander in der Reihenfolge aus, in der sie im Programm erscheinen. Eine andere Möglichkeit, »etwas geschehen zu lassen«, besteht darin, diese Standardreihenfolge der Ausführung zu ändern. JavaScript bietet eine Reihe von Anweisungen oder Kontrollstrukturen, die genau dies tun:
Bedingungen
Anweisungen wie if und switch, die einen Ausdruck auswerten und auf Basis des Ergebnisses den JavaScript-Interpreter veranlassen, bestimmte Anweisungen auszuführen oder aber zu überspringen.
Schleifen
Anweisungen wie while und for, die andere Anweisungen wiederholt ausführen.
Sprünge
Anweisungen wie break, return und throw, die den Interpreter veranlassen, zu einem anderen Teil des Programms zu springen.
Die nachfolgenden Abschnitte beschreiben die unterschiedlichen Anweisungen von JavaScript und erläutern ihre Syntax, die in Tabelle 5-1 am Ende des Kapitels noch einmal übersichtlich zusammengefasst ist. Ein JavaScript-Programm ist schlicht eine Abfolge von Anweisungen, die voneinander durch Semikola getrennt werden. Sobald Sie mit diesen Anweisungen vertraut sind, können Sie selbst beginnen, JavaScript-Programme zu schreiben.
5.1Anweisungsausdrücke
Die einfachsten Arten von JavaScript-Anweisungen sind Ausdrücke mit Seiteneffekten. Solche Anweisungen wurden in Kapitel 4 vorgestellt. Beispielsweise sind Zuweisungsanweisungen eine wichtige Kategorie von Ausdrucksanweisungen:
greeting = "Hello " + name;
i *= 3;
Die Inkrement- und Dekrementoperatoren ++ und -- sind mit den Zuweisungsanweisungen verwandt. Sie haben den Seiteneffekt, dass der Wert einer Variablen geändert wird, als wäre eine Zuweisung erfolgt:
counter++;
Der delete-Operator hat den wichtigen Seiteneffekt, dass eine Objekteigenschaft gelöscht wird. Er wird deshalb fast immer als eigenständige Anweisung und nicht als Teil eines umfangreicheren Ausdrucks eingesetzt:
delete o.x;
Funktionsaufrufe sind eine weitere wichtige Kategorie von Ausdrucksanweisungen, zum Beispiel:
console.log(debugMessage);
displaySpinner(); // Eine hypothetische Funktion zur Anzeige eines
// "Wartekreisels" ("spinner") in einer Webanwendung.
Diese Funktionsaufrufe sind Ausdrücke, haben aber Seiteneffekte, die die Hostumgebung oder den Programmzustand beeinflussen, und werden hier als Anweisungen genutzt. Hat eine Funktion keine Seiteneffekte, ergibt es keinen Sinn, sie aufzurufen, es sei denn, sie ist Teil eines komplexeren Ausdrucks oder einer Zuweisungsanweisung. Man würde zum Beispiel nicht einfach einen Kosinus berechnen und das Ergebnis verwerfen:
Math.cos(x);
Normalerweise würde man den Wert berechnen und ihn zur späteren Verwendung in einer Variablen speichern:
cx = Math.cos(x);
Beachten Sie, dass die Codezeilen in diesen Beispielen immer mit einem Semikolon abgeschlossen werden.
5.2Zusammengesetzte und leere Anweisungen
Während der Kommaoperator (siehe 4.13.7) mehrere Ausdrücke zu einem einzigen Ausdruck zusammenfasst, so kombiniert ein Anweisungsblock mehrere Anweisungen zu einer einzigen zusammengesetzten Anweisung. Ein Anweisungsblock ist einfach eine Folge von Anweisungen, die in geschweifte Klammern eingeschlossen ist. Die folgenden Zeilen verhalten sich also wie eine einzige Anweisung und können überall dort verwendet werden, wo JavaScript eine einzelne Anweisung erwartet:
{
x = Math.PI;
cx = Math.cos(x);
console.log("cos(?) = " + cx);
}
An diesem Anweisungsblock sind einige Dinge auffällig. Erstens: Er endet nicht mit einem Semikolon. Zwar werden die einzelnen Anweisungen im Block mit Semikola abgeschlossen, der Block selbst aber nicht. Zweitens: Die Zeilen innerhalb des Blocks sind im Verhältnis zu den umschließenden geschweiften Klammern eingerückt. Das ist nicht zwingend vorgeschrieben, verbessert aber die Lesbarkeit