|
Inhaltsübersicht |
6 |
|
|
Inhaltsverzeichnis |
8 |
|
|
1 Einleitung |
22 |
|
|
1.1 Ziel dieses Buches |
23 |
|
|
1.2 Aufbau dieses Buches |
24 |
|
|
1.2.1 ECMAScript |
24 |
|
|
1.2.2 JavaScript im Browser |
24 |
|
|
1.2.3 Webapplikationen |
24 |
|
|
1.2.4 Referenz |
25 |
|
|
1.2.5 Beispieldateien |
25 |
|
|
1.3 Danksagungen |
25 |
|
|
2 Überblick |
26 |
|
|
2.1 Das Internet |
26 |
|
|
2.2 Das World Wide Web |
28 |
|
|
2.2.1 Webbrowser |
29 |
|
|
2.2.2 HTML |
30 |
|
|
2.2.3 Serverseitige Verarbeitung |
31 |
|
|
2.2.4 Clientseitige Verarbeitung |
33 |
|
|
2.2.5 Weiterentwicklungen der Markup-Sprachen |
34 |
|
|
2.3 JavaScript |
34 |
|
|
2.3.1 Entstehungsgeschichte |
34 |
|
|
2.3.2 Client-side JavaScript |
35 |
|
|
2.3.3 Server-side JavaScript |
37 |
|
|
2.3.4 Ajax |
37 |
|
|
2.3.5 Andere Einsatzgebiete von JavaScript bzw. ECMAScript |
38 |
|
|
2.3.6 Weiterentwicklung und zusätzliche Informationen |
38 |
|
|
3 Erste Schritte in JavaScript |
40 |
|
|
3.1 Erstellung eines HTML-Dokuments mit JavaScript-Code |
41 |
|
|
3.1.1 Die grundlegende HTML-Datei |
41 |
|
|
3.1.2 Grundaufbau eines HTML-Dokuments |
44 |
|
|
3.1.3 JavaScript-Code einfügen |
44 |
|
|
3.1.4 Mehrere JavaScript-Befehle |
47 |
|
|
3.1.5 Einfache Berechnungen |
48 |
|
|
3.2 Auf Benutzereingaben reagieren |
49 |
|
|
3.3 Kommentare |
50 |
|
|
3.4 Darstellung mit einem nicht JavaScript-fähigen Browser |
51 |
|
|
3.5 js-Bibliotheksdatei |
53 |
|
|
3.6 Quellcode anzeigen |
54 |
|
|
3.7 Vorbereitungen vor der Veröffentlichung |
54 |
|
|
4 Variablen |
56 |
|
|
4.1 Variablen einsetzen |
56 |
|
|
4.2 Variablen definieren |
58 |
|
|
4.3 Ausgangswert einer Variablen |
60 |
|
|
4.4 Variablennamen |
61 |
|
|
4.5 Berechnungen |
62 |
|
|
4.6 Operatoren |
64 |
|
|
4.6.1 Rechenoperatoren |
64 |
|
|
4.6.2 Inkrement- und Dekrement-Operatoren |
64 |
|
|
4.6.3 Zuweisungsoperatoren |
65 |
|
|
4.6.4 Der typeof-Operator |
66 |
|
|
4.6.5 Bitweise Operatoren |
66 |
|
|
5 Verzweigungen |
68 |
|
|
5.1 if-Abfragen |
68 |
|
|
5.1.1 Vergleichsoperatoren |
70 |
|
|
5.1.2 Die else-Anweisung |
71 |
|
|
5.1.3 Boolesche Variablen überprüfen |
72 |
|
|
5.1.4 Geschachtelte if-Abfragen |
73 |
|
|
5.1.5 Der Negationsoperator |
73 |
|
|
5.1.6 Boolesche Operatoren |
74 |
|
|
5.2 Der Konditional-Operator ?: |
75 |
|
|
5.3 switch-Anweisungen |
75 |
|
|
6 Schleifen |
78 |
|
|
6.1 Die for-Schleife |
79 |
|
|
6.1.1 Grundaufbau der for-Schleife |
79 |
|
|
6.1.2 Die Schleifenvariable selbst einsetzen |
81 |
|
|
6.1.3 Die Schrittweite festlegen |
81 |
|
|
6.1.4 Endlosschleifen |
82 |
|
|
6.1.5 Sofortiger Abbruch |
82 |
|
|
6.2 Die while-Schleife |
83 |
|
|
6.3 break |
87 |
|
|
6.4 continue |
88 |
|
|
6.5 Die do-while-Schleife |
88 |
|
|
7 Funktionen |
90 |
|
|
7.1 Funktionen definieren und aufrufen |
90 |
|
|
7.1.1 Aufbau einer Funktion |
90 |
|
|
7.1.2 Eine Funktion aufrufen |
91 |
|
|
7.1.3 Eine Funktion als Reaktion auf Benutzereingaben aufrufen |
93 |
|
|
7.2 Übergabewerte |
93 |
|
|
7.2.1 Feste Anzahl von Argumenten |
93 |
|
|
7.2.2 Funktionsaufrufe mit Variablenübergabe |
97 |
|
|
7.2.3 Variable Anzahl von Argumenten |
98 |
|
|
7.3 Rückgabewerte |
99 |
|
|
7.4 Globale und lokale Variablen |
100 |
|
|
7.4.1 Globale Variablen |
100 |
|
|
7.4.2 Lokale Variablen |
101 |
|
|
7.4.3 let |
102 |
|
|
7.4.4 Globale oder lokale Variablen? |
103 |
|
|
7.5 Vordefinierte Funktionen |
104 |
|
|
7.5.1 parseInt() |
104 |
|
|
7.5.2 parseFloat() |
105 |
|
|
7.5.3 eval() |
106 |
|
|
7.6 Fortgeschrittene Themen im Zusammenhang mit Funktionen |
106 |
|
|
7.6.1 Die Function-Klasse |
106 |
|
|
7.6.2 Anonyme Funktionen |
107 |
|
|
7.6.3 Innere Funktionen |
107 |
|
|
7.6.4 Rekursive Funktionen |
108 |
|
|
7.6.5 Generatoren |
109 |
|
|
7.6.6 Destructuring |
109 |
|
|
8 Objekte |
112 |
|
|
8.1 Was sind Objekte? |
112 |
|
|
8.2 Mit Objekten arbeiten |
113 |
|
|
8.2.1 Eine Klasse definieren |
113 |
|
|
8.2.2 Ein Objekt erzeugen |
114 |
|
|
8.2.3 Auf Eigenschaften und Methoden zugreifen |
115 |
|
|
8.2.4 Das Objekt zerstören |
116 |
|
|
8.3 Vordefinierte Klassen |
117 |
|
|
8.4 Die Date-Klasse |
118 |
|
|
8.4.1 Ein Date-Objekt erzeugen |
118 |
|
|
8.4.2 Das Datum und die Uhrzeit festlegen |
118 |
|
|
8.4.3 Ein Datum ausgeben |
119 |
|
|
8.4.4 Zeitdifferenzen berechnen |
120 |
|
|
8.4.5 Das Jahr-2000-Problem |
121 |
|
|
8.5 Die Math-Klasse |
122 |
|
|
8.5.1 Vordefinierte Konstanten |
122 |
|
|
8.5.2 Zahlen runden |
123 |
|
|
8.5.3 Zufallszahlen |
123 |
|
|
8.6 Die String-Klasse |
123 |
|
|
8.6.1 charAt() |
124 |
|
|
8.6.2 indexOf() |
125 |
|
|
8.6.3 lastIndexOf() |
126 |
|
|
8.6.4 substring() |
126 |
|
|
8.6.5 split() |
127 |
|
|
8.6.6 Länge eines Strings |
127 |
|
|
8.7 Die Array-Klasse |
128 |
|
|
8.7.1 Ein Array erzeugen |
128 |
|
|
8.7.2 Auf die Elemente eines Arrays zugreifen |
128 |
|
|
8.7.3 Ein Array initialisieren |
130 |
|
|
8.7.4 Dynamische Arrays |
130 |
|
|
8.7.5 Unterschiedliche Datentypen in Arrays |
131 |
|
|
8.7.6 Elemente zu einem String zusammenfügen |
132 |
|
|
8.7.7 Die Reihenfolge in einem Array umkehren |
132 |
|
|
8.7.8 Array-Inhalte sortieren |
133 |
|
|
8.7.9 Verkürzte Schreibweise |
135 |
|
|
8.7.10 Erweiterungen seit JavaScript 1.5 |
135 |
|
|
8.8 Befehle zum Arbeiten mit Objekten |
137 |
|
|
8.8.1 Der instanceof-Operator |
137 |
|
|
8.8.2 with |
138 |
|
|
8.8.3 for..in-Schleife |
138 |
|
|
8.9 Fortgeschrittene Themen im Zusammenhang mit Objekten |
139 |
|
|
8.9.1 JavaScript als prototypenbasierte Programmiersprache |
140 |
|
|
8.9.2 Objekte erweitern |
140 |
|
|
8.9.3 Eigene Klassen definieren |
141 |
|
|
8.9.4 JavaScript Object Notation |
143 |
|
|
8.9.5 Kapselung |
144 |
|
|
8.9.6 Vererbung |
145 |
|
|
9 Fehlerbehandlung |
148 |
|
|
9.1 Fehlermeldungen |
148 |
|
|
9.2 Fehlerarten |
150 |
|
|
9.2.1 Syntaxfehler |
150 |
|
|
9.2.2 Laufzeitfehler |
151 |
|
|
9.2.3 Logische Fehler |
152 |
|
|
9.3 Debugger |
152 |
|
|
9.4 Exception Handling |
153 |
|
|
9.5 Das Error-Objekt |
154 |
|
|
9.6 Exceptions auslösen |
156 |
|
|
10 JavaScript im Browser |
158 |
|
|
10.1 Objekte einer Webseite |
159 |
|
|
10.1.1 Das Browserfenster |
159 |
|
|
10.1.2 Popup-Fenster |
160 |
|
|
10.2 Navigation |
163 |
|
|
10.2.1 Das location-Objekt |
163 |
|
|
10.2.2 Das history-Objekt |
164 |
|
|
10.2.3 Browser-Cache |
165 |
|
|
10.3 JavaScript-Code im Browserfenster ausführen |
165 |
|
|
10.3.1 Verschiedene Skripte gleichzeitig ausführen |
166 |
|
|
10.3.2 Timer |
166 |
|
|
10.4 Browserversionen überprüfen |
168 |
|
|
10.4.1 Das navigator-Objekt abfragen |
169 |
|
|
10.4.2 Die JavaScript-Version im |