|
Inhalt |
5 |
|
|
Vorwort |
11 |
|
|
Kapitel 1: Gute Seiten |
15 |
|
|
Warum JavaScript? |
16 |
|
|
Analyse von JavaScript |
17 |
|
|
Das Versuchsgelände |
19 |
|
|
Kapitel 2: Grammatik |
20 |
|
|
Whitespace |
20 |
|
|
Namen |
21 |
|
|
Zahlen |
22 |
|
|
Strings |
24 |
|
|
Anweisungen |
25 |
|
|
Ausdrücke |
30 |
|
|
Literale |
33 |
|
|
Funktionen |
34 |
|
|
Kapitel 3: Objekte |
36 |
|
|
Objektliterale |
36 |
|
|
Abruf |
37 |
|
|
Update |
38 |
|
|
Referenz |
38 |
|
|
Prototyp |
39 |
|
|
Reflexion |
40 |
|
|
Aufzählung |
40 |
|
|
Löschung |
41 |
|
|
Reduzierung globaler Variablen |
41 |
|
|
Kapitel 4: Funktionen |
43 |
|
|
Funktionsobjekte |
43 |
|
|
Funktionsliterale |
44 |
|
|
Aufruf |
45 |
|
|
Argumente |
48 |
|
|
Return |
49 |
|
|
Ausnahmen |
49 |
|
|
Typen erweitern |
50 |
|
|
Rekursion |
51 |
|
|
Geltungsbereich |
54 |
|
|
Closure |
55 |
|
|
Callbacks |
58 |
|
|
Module |
58 |
|
|
Kaskaden |
61 |
|
|
Curry |
62 |
|
|
Memoization |
62 |
|
|
Kapitel 5: Vererbung |
65 |
|
|
Pseudoklassische Vererbung |
66 |
|
|
Objekt-Specifier |
69 |
|
|
Prototypische Vererbung |
69 |
|
|
Funktionale Vererbung |
71 |
|
|
Teile |
75 |
|
|
Kapitel 6: Arrays |
77 |
|
|
Array-Literale |
77 |
|
|
Length |
78 |
|
|
Delete |
79 |
|
|
Aufzählung |
80 |
|
|
Verwirrung |
80 |
|
|
Methoden |
81 |
|
|
Dimensionen |
82 |
|
|
Kapitel 7: Reguläre Ausdrücke |
85 |
|
|
Ein Beispiel |
86 |
|
|
Konstruktion |
91 |
|
|
Elemente |
92 |
|
|
Kapitel 8: Methoden |
99 |
|
|
Kapitel 9: Stil |
115 |
|
|
Kapitel 10: Schöne Features |
119 |
|
|
Anhang A:Furchtbare Seiten |
122 |
|
|
Globale Variablen |
122 |
|
|
Geltungsbereich |
123 |
|
|
Semikolon einfügen |
123 |
|
|
Reservierte Wörter |
124 |
|
|
Unicode |
124 |
|
|
typeof |
125 |
|
|
parseInt |
125 |
|
|
+ |
126 |
|
|
Fließkomma |
126 |
|
|
NaN |
126 |
|
|
Falsche Arrays |
127 |
|
|
Falsch-Werte |
128 |
|
|
hasOwnProperty |
128 |
|
|
Object |
129 |
|
|
Anhang B: Schlechte Seiten |
131 |
|
|
== |
131 |
|
|
with-Anweisung |
132 |
|
|
eval |
132 |
|
|
continue-Anweisung |
133 |
|
|
switch-Fallthrough |
133 |
|
|
Blockfreie Anweisungen |
134 |
|
|
++ -- |
134 |
|
|
Bitorientierte Operatoren |
135 |
|
|
function-Anweisung vs. function-Ausdruck |
135 |
|
|
Typisierte Wrapper |
136 |
|
|
new |
136 |
|
|
void |
137 |
|
|
Anhang C: JSLint |
138 |
|
|
Nicht definierte Variablen und Funktionen |
139 |
|
|
Member |
140 |
|
|
Optionen |
140 |
|
|
Semikolon |
141 |
|
|
Zeilenumbruch |
142 |
|
|
Komma |
142 |
|
|
Blöcke |
142 |
|
|
Verbotene Blöcke |
143 |
|
|
Ausdrucksanweisungen |
143 |
|
|
for...in-Anweisung |
143 |
|
|
switch-Anweisung |
144 |
|
|
var-Anweisung |
144 |
|
|
with-Anweisung |
144 |
|
|
= |
145 |
|
|
== und != |
145 |
|
|
Label |
146 |
|
|
Unerreichbarer Code |
146 |
|
|
Verwirrendes Plus und Minus |
146 |
|
|
++ und -- |
146 |
|
|
Bitorientierte Operatoren |
146 |
|
|
eval ist böse |
146 |
|
|
void |
147 |
|
|
Reguläre Ausdrücke |
147 |
|
|
Konstruktoren und new |
147 |
|
|
Was nicht untersucht wird |
147 |
|
|
HTML |
148 |
|
|
JSON |
148 |
|
|
Bericht |
148 |
|
|
Anhang D: Syntaxdiagramme |
150 |
|
|
Anhang E: JSON |
160 |
|
|
JSON-Syntax |
160 |
|
|
JSON sicher nutzen |
163 |
|
|
Ein JSON-Parser |
165 |
|
|
Index |
171 |
|
|
Über den Autor |
179 |
|
|
Kolophon |
179 |
|