|
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 Ablauf einer Abfrage im Web |
26 |
|
|
2.1.1 Geräte und Internetzugang |
26 |
|
|
2.1.2 Webbrowser |
27 |
|
|
2.1.3 Aubrufen einer Webseite |
28 |
|
|
2.1.4 Die Antwort des Servers |
29 |
|
|
2.1.5 Verarbeitung auf dem Server |
30 |
|
|
2.1.6 Verarbeitung auf dem Client |
31 |
|
|
2.2 JavaScript |
32 |
|
|
2.2.1 Entstehungsgeschichte |
32 |
|
|
2.2.2 ECMAScript |
33 |
|
|
2.2.3 JavaScript-Versionen |
33 |
|
|
2.2.4 Verwandte Standards |
34 |
|
|
2.2.5 Frameworks und Funktionsbibliotheken |
34 |
|
|
2.2.6 Andere Einsatzgebiete von JavaScript bzw. ECMAScript |
35 |
|
|
2.3 Weiterentwicklung und zusätzliche Informationen |
35 |
|
|
3 Erste Schritte in JavaScript |
36 |
|
|
3.1 Erstellung eines HTML-Dokuments mit JavaScript-Code |
37 |
|
|
3.1.1 Die grundlegende HTML-Datei |
37 |
|
|
3.1.2 Grundaufbau eines HTML-Dokuments |
40 |
|
|
3.1.3 JavaScript-Code einfügen |
40 |
|
|
3.1.4 Mehrere JavaScript-Befehle |
43 |
|
|
3.1.5 Einfache Berechnungen |
44 |
|
|
3.2 Auf Benutzereingaben reagieren |
45 |
|
|
3.3 Kommentare |
46 |
|
|
3.4 Darstellung mit einem nicht JavaScript-fähigen Browser |
47 |
|
|
3.5 js-Bibliotheksdatei |
49 |
|
|
3.6 Quellcode anzeigen |
50 |
|
|
4 Variablen |
52 |
|
|
4.1 Variablen einsetzen |
52 |
|
|
4.2 Variablen definieren |
54 |
|
|
4.3 Ausgangswert einer Variablen |
56 |
|
|
4.4 Variablennamen |
57 |
|
|
4.5 Berechnungen |
58 |
|
|
4.6 Operatoren |
60 |
|
|
4.6.1 Rechenoperatoren |
60 |
|
|
4.6.2 Inkrement- und Dekrement-Operatoren |
60 |
|
|
4.6.3 Zuweisungsoperatoren |
61 |
|
|
4.6.4 Der typeof-Operator |
62 |
|
|
4.6.5 Bitweise Operatoren |
62 |
|
|
5 Verzweigungen |
64 |
|
|
5.1 if-Abfragen |
64 |
|
|
5.1.1 Vergleichsoperatoren |
65 |
|
|
5.1.2 Die else-Anweisung |
67 |
|
|
5.1.3 Boolesche Variablen überprüfen |
68 |
|
|
5.1.4 Geschachtelte if-Abfragen |
69 |
|
|
5.1.5 Der Negationsoperator |
69 |
|
|
5.1.6 Boolesche Operatoren |
70 |
|
|
5.2 Der Konditional-Operator ?: |
71 |
|
|
5.3 switch-Anweisungen |
71 |
|
|
6 Schleifen |
74 |
|
|
6.1 Die for-Schleife |
75 |
|
|
6.1.1 Grundaufbau der for-Schleife |
75 |
|
|
6.1.2 Die Schleifenvariable selbst einsetzen |
77 |
|
|
6.1.3 Die Schrittweite festlegen |
77 |
|
|
6.1.4 Endlosschleifen |
78 |
|
|
6.1.5 Sofortiger Abbruch |
78 |
|
|
6.2 Die while-Schleife |
79 |
|
|
6.3 break |
82 |
|
|
6.4 continue |
83 |
|
|
6.5 Die do-while-Schleife |
84 |
|
|
7 Funktionen |
86 |
|
|
7.1 Funktionen definieren und aufrufen |
86 |
|
|
7.1.1 Aufbau einer Funktion |
86 |
|
|
7.1.2 Eine Funktion aufrufen |
87 |
|
|
7.1.3 Eine Funktion als Reaktion auf Benutzereingaben aufrufen |
89 |
|
|
7.2 Übergabewerte |
89 |
|
|
7.2.1 Feste Anzahl von Argumenten |
89 |
|
|
7.2.2 Funktionsaufrufe mit Variablenübergabe |
93 |
|
|
7.2.3 Variable Anzahl von Argumenten |
94 |
|
|
7.3 Rückgabewerte |
95 |
|
|
7.4 Globale und lokale Variablen |
96 |
|
|
7.4.1 Globale Variablen |
96 |
|
|
7.4.2 Lokale Variablen |
97 |
|
|
7.4.3 Globale oder lokale Variablen? |
98 |
|
|
7.5 Vordefinierte Funktionen |
99 |
|
|
7.5.1 parseInt() |
99 |
|
|
7.5.2 parseFloat() |
100 |
|
|
7.5.3 eval() |
101 |
|
|
7.6 Fortgeschrittene Themen im Zusammenhang mit Funktionen |
101 |
|
|
7.6.1 Das Function-Objekt |
101 |
|
|
7.6.2 Anonyme Funktionen |
102 |
|
|
7.6.3 Innere Funktionen |
102 |
|
|
7.6.4 Rekursive Funktionen |
103 |
|
|
8 Objekte |
104 |
|
|
8.1 Was sind Objekte? |
104 |
|
|
8.2 Mit Objekten arbeiten |
105 |
|
|
8.2.1 Den Konstruktor aufrufen |
105 |
|
|
8.2.2 Auf Eigenschaften zugreifen |
106 |
|
|
8.2.3 Methoden verwenden |
106 |
|
|
8.2.4 for..in-Schleife |
107 |
|
|
8.2.5 Der instanceof-Operator |
107 |
|
|
8.2.6 with |
107 |
|
|
8.2.7 Call by Reference |
108 |
|
|
8.3 Objekte definieren |
109 |
|
|
8.3.1 Das Object-Objekt |
109 |
|
|
8.3.2 Einen Konstruktor definieren |
111 |
|
|
8.3.3 Konstruktor mit Übergabewert |
112 |
|
|
8.3.4 Die Kurzschreibweise JSON |
112 |
|
|
8.3.5 Objekte ineinander schachteln |
113 |
|
|
8.4 Kapselung |
114 |
|
|
8.5 Objekte erweitern |
115 |
|
|
8.5.1 Eigenschaften hinzufügen |
115 |
|
|
8.5.2 Methoden hinzufügen |
116 |
|
|
8.6 Vererbung |
116 |
|
|
8.6.1 Die Prototypkette |
117 |
|
|
8.6.2 Überschreiben von Eigenschaften |
117 |
|
|
8.6.3 Überschreiben von Methoden |
118 |
|
|
8.7 Erweiterungen in ECMAScript 5 |
119 |
|
|
8.7.1 Eigenschaften festlegen |
119 |
|
|
8.7.2 Veränderungen des Objekts einschränken |
120 |
|
|
8.7.3 Zugriffsmethoden definieren |
121 |
|
|
8.7.4 Eigenschaften entfernen |
122 |
|
|
8.7.5 Die Eigenschaften eines Objekts durchlaufen |
122 |
|
|
8.7.6 Der Strict Mode |
123 |
|
|
9 Vordefinierte Objekte |
124 |
|
|
9.1 Das Date-Objekt |
124 |
|
|
9.1.1 Ein Date-Objekt erzeugen |
125 |
|
|
9.1.2 Das Datum und die Uhrzeit festlegen |
125 |
|
|
9.1.3 Ein Datum ausgeben |
126 |
|
|
9.1.4 Zeitdifferenzen berechnen |
126 |
|
|
9.2 Das Math-Objekt |
128 |
|
|
9.2.1 Vordefinierte Konstanten |
128 |
|
|
9.2.2 Zahlen runden |
128 |
|
|
9.2.3 Zufallszahlen |
129 |
|
|
9.3 Das String-Objekt |
129 |
|
|
9.3.1 charAt() |
129 |
|
|
9.3.2 indexOf() |
130 |
|
|
9.3.3 lastIndexOf() |
131 |
|
|
9.3.4 substring() |
132 |
|
|
9.3.5 split() |
132 |
|
|
9.3.6 Länge eines Strings |
133 |
|
|
9.4 Das Array-Objekt |
133 |
|
|
9.4.1 Ein Array erzeugen |
134 |
|
|
9.4.2 Auf die Elemente eines Arrays zugreifen |
134 |
|
|
9.4.3 Ein Array initialisieren |
135 |
|
|
9.4.4 Dynamische Arrays |
136 |
|
|
9.4.5 Unterschiedliche Datentypen in Arrays |
137 |
|
|
9.4.6 Elemente zu einem String zusammenfügen |
137 |
|
|
9.4.7 Die Reihenfolge in einem Array umkehren |
138 |
|
|
9.4.8 Array-Inhalte sortieren |
138 |
|
|
9.4.9 Kurzschreibweise für Arrays |
140 |
|
|
9.4.10 Erweiterungen in ECMAScript 5 |
140 |
|
|
10 Fehlerbehandlung |
144 |
|
|
10.1 Fehlermeldungen |
144 |
|
|
10.2 Fehlerarten |
146 |
|
|
10.2.1 Syntaxfehler |
146 |
|
|
10.2.2 Laufzeitfehler |
147 |
|
|
10.2.3 Logische Fehler |
148 |
|
|
10.3 Debugger |
148 |
|
|
10.4 Exception Handling |
149 |
|
|
10.5 Das Error-Objekt |
150 |
|
|
10.6 Exceptions auslösen |
152 |
|
|
11 JavaScript im Browser |
154 |
|
|
11.1 Das Browserfenster |
155 |
|
|
11.1.1 Der allgemeine Aufbau |
155 |
|
|
11.1.2 Fenster erzeugen |
156 |
|
|
11.1.3 Ein Fenster schließen |
158 |
|
|
11.1.4 Ein Fenster in den Vordergrund bringen |
159 |
|
|
11.1.5 Zwischen Fenstern kommunizieren |
159 |
|
|
11.1.6 IFrames |
160 |
|
|
11.1.7 Dialogfenster |
161 |
|
|
11.2 Navigation |
164 |
|
|
11.2.1 Das location-Objekt |
164 |
|
|
11.2.2 Das history-Objekt |
165 |
|
|
11.2.3 Browser-Cache |
166 |
|
|
11.3 JavaScript-Code im Browserfenster ausführen |
166 |
|
|
11.3.1 Direkte Ausführung beim Laden des HTML-Dokuments |
166 |
|
|
11.3.2 Ereignisgesteuerte Ausführung |
167 |
|
|
11.3.3 Verzögerte Ausführung mit Timern |
167 |
|
|
11.3.4 Regelmäßige Ausführung mit Intervallen |
168 |
|
|
11.3.5 Probleme bei der Ausführung von JavaScript-Code |
169 |
|
|
11.4 Browserversionen überprüfen |
169 |
|
|
11.4.1 Das navigator-Objekt abfragen |
170 |
|
|
11.4.2 Die JavaScript-Version im |