aktueller Standort: Heim > Herunterladen > Lernmittel > Erstellung von Webseiten > JavaScript Return of the King Chinesische Version
JavaScript Return of the King Chinesische Version
Klassifizieren: Lernmaterialien / Erstellung von Webseiten | Veröffentlichkeitsdatum: 2018-01-17 | Besuche: 2964502 |
Herunterladen: 223 |
Neueste Downloads
Alarmstufe Rot OL
Operationsdelta
Pokémon-Versammlung
Fantasy-Aquarium
Girls Frontline
Flügel der Sterne
Kleine Blumenfee, Feenparadies
Restaurant Cute Story
Shanhe Reiseerkundung
Liebe und Produzent
24 StundenBestenliste lesen
- 1 Wie generiert man eindeutige alphanumerische Zahlen durch Verketten von MySQL-Spalten?
- 2 Sollten Konstruktorfunktionen Versprechen zurückgeben?
- 3 Wie fülle ich fehlende Daten in einem Pandas-DataFrame aus?
- 4 Walkthrough zu Path Of Exile 2: The Slithering Dead
- 5 Welchen Zweck hat das Unterstrichkomma („_“) in Go-Deklarationen?
- 6 Wie konfiguriere ich einen Proxy für HTTP-Clients in Go?
- 7 Wie behebe ich den Microsoft Office-Installationsfehler 30094-2016 in Windows?
- 8 Wie entferne ich Elemente während der Iteration sicher aus einer std::list?
- 9 Wie wirken sich Parameteränderungen innerhalb einer Funktion auf die aufrufende Funktion in C und C aus?
- 10 Sphinx vs. SOLR: Welche eigenständige Volltextsuchmaschine ist die richtige für mein Projekt?
- 11 Sie benötigen kein Update auf React 19
- 12 Wie verwaltet die @Transactional-Annotation von Spring Transaktionen und handhabt den Selbstaufruf?
- 13 Warum ist com.mysql.jdbc.Driver veraltet und wie migriere ich zum neuen MySQL Connector/J-Treiber?
- 14 Wie übergebe ich Parameter in C korrekt?
- 15 Wie lösen Generics das typspezifische Funktionsproblem in Go?
Neueste Tutorials
-
- Gehen Sie zur praktischen Anwendung von GraphQL
- 2297 2024-04-19
-
- Erste Schritte mit MySQL (Teacher Mosh)
- 1980 2024-04-07
-
- Mock.js |. Axios.js |. Ajax – Zehn Tage Qualitätsunterricht
- 2768 2024-03-29
Inhaltsverzeichnis
Teil Eins Einführung
Kapitel 1 Von vorne anfangen
1.1 Warum JavaScript wählen?
1.1.1 Benutzereinstellungen – B/S-Modus
1.1.2 Wann JavaScript verwendet werden sollte
1.1.3 Einige Missverständnisse über JavaScript
1.1.3.1 Die Beziehung zwischen JavaScript und Java
1.1.3.2 Lisp in C
1.1.3.3 Nachdenken über JavaScript
1.1.3.4 Ist JavaScript für Amateure konzipiert?
1.1.3.5 Ist JavaScript objektorientiert
1.1.3.6 Andere Missverständnisse
1.1.4 Seien Sie wachsam! Skript-Versuchung
1.1.5 Komplexität verborgen unter einfacher Erscheinung
1.1.6 Die verwirrende Wahl – das i-Tüpfelchen oder die Bereitstellung von Hilfe bei Bedarf Teil 1 Einführung
Kapitel 1 Von vorne anfangen
1.1 Warum JavaScript wählen?
1.1.1 Benutzereinstellungen – B/S-Modus
1.1.2 Wann JavaScript verwendet werden sollte
1.1.3 Einige Missverständnisse über JavaScript
1.1.3.1 Die Beziehung zwischen JavaScript und Java
1.1.3.2 Lisp in C
1.1.3.3 Nachdenken über JavaScript
1.1.3.4 Ist JavaScript für Amateure konzipiert?
1.1.3.5 Ist JavaScript objektorientiert
1.1.3.6 Andere Missverständnisse
1.1.4 Seien Sie wachsam! Skript-Versuchung
1.1.5 Komplexität verborgen unter einfacher Erscheinung
1.1.6 Die verwirrende Wahl – das Tüpfelchen auf dem i oder die rechtzeitige Hilfe
1.1.7 Zurück zur Frage
1.2 Anwendungsbereich von JavaScript
1.2.1 Clientseitiges JavaScript
1.2.2 Serverseitiges JavaScript
1.2.3 JavaScript in anderen Umgebungen
1.3 JavaScript-Version
1.3.1 JavaScript-Version im Browser
1.3.2 Andere Versionen
1.4 Einige erwähnenswerte Funktionen
1.4.1 Kleiner Trick – magischer Zaubercode
1.4.2 Kunden bedienen – klassisches Hello World! Eine weitere JavaScript-Implementierung von
1.4.3 Dateninteraktion – eine leistungsstarke Funktion von JavaScript
1.4.4 Die offensichtlichen Tabus von JavaScript und wie man sie durchbricht
1.5 Sicherheit und Ausführungseffizienz
1.5.1 Datensicherheit – für immer ein sensibles Thema
1.5.2 Echter Kampf! Angriff und Verteidigung
1.5.3 Keine Unachtsamkeiten – immer auf Leistung achten
1.6 Ein Beispiel – In JavaScript geschriebener Rechner
1.6.1 Beginnen Sie mit der Anforderungsanalyse – Was ist ein Taschenrechner?
1.6.2 Systemdesign – Wie implementiert man einen Rechner?
1.6.3 Systemimplementierung – die endgültige Implementierung des Rechners
1.6.4 Kontinuierliche Verbesserung – iterativer Softwareentwicklungsprozess
1.7 Einige Vorschläge zum Erlernen und Verwenden von JavaScript
1.7.1 Denken Sie wie ein Programmierer – die vier Bereiche der Programmierer
1.7.2 Schätzen Sie Ihren Code
1.7.3 Lernen Sie, in der Umgebung zu debuggen
1.7.4 Seien Sie vorsichtig bei kleinen Fehlern
1.7.5 Denken Sie vor dem Üben – schreiben Sie Code nicht einfach
1.7.6 Schauen Sie immer zurück – selbst Weise können die Zukunft nicht vollständig vorhersagen
1.8 Über den Rest des Buches
Kapitel 2 JavaScript im Browser
2.1 In Webseiten eingebetteter ausführbarer Inhalt
2.1.1 Wo JavaScript-Code geladen werden soll
2.1.2 Über das Script-Tag des Codes
2.1.3 Wann wird mein Code ausgeführt – JavaScript-Code in verschiedenen Ausführungszeiträumen
2.1.4 Borrowingismus – Einführung externer JavaScript-Dateien
2.2 Erfreuliche Spezialeffekte
2.2.1 Das Leben liegt in der Bewegung – Die Wirkung von DHTML
2.2.2 Ändern Sie Ihren Stil – die Kraft von CSS
2.2.3 Verwendung von JavaScript zur Manipulation von DOM – ein Beispiel für ein ziehbares Fenster
2.3 Verwenden Sie JavaScript, um mit Benutzern zu interagieren
2.3.1 Erstellen Sie eine Popup-Hilfe und einen Fortschrittsbalken
2.3.2 Falscher Eintrag
2.4 Vermeiden Sie Skriptfallen
2.4.1 Die Realität ist nicht immer perfekt
2.4.2 Glauben Sie nicht ganz, was Sie sehen
2.5 Zusammenfassung
Kapitel 3 Entwicklungsumgebung und Debugging-Methode
3.1 Was kann ich zum Schreiben von Skripten verwenden – ein Texteditor, der zum Schreiben von JavaScript geeignet ist
3.2 Unterstützung vom Browser
3.2.1 Mainstream-Browser
3.2.2 Nicht-Mainstream-Browser
3.3 Integrierte Entwicklungsumgebung
3.3.1 Was ist eine integrierte Entwicklungsumgebung?
3.3.2 Benötige ich eine integrierte Entwicklungsumgebung
3.3.3 Integrierte Entwicklungsumgebung geeignet für JavaScript
3.4 Debugging-Tools – ein leistungsstarkes Tool zur Verbesserung der Entwicklungseffizienz
3.4.1 Was ist Debuggen
3.4.2 Ursprüngliche Debugging-Methode – Debuggen mithilfe von Ausgabeanweisungen, „Reflexions“-Mechanismus und Debugging-Objekten
3.4.3 Für JavaScript geeignete Debugging-Tools
3.5 Code und Aufrufstapel finden
3.5.1 Schritt für Schritt – Einzelschritt und Haltepunkt
3.5.2 Speicher überwachen
3.5.3 Verfolgen Sie die Ursache des Problems – sehen Sie sich den Aufrufstapel an
3.5.4 Es ist ein Problem aufgetreten – Warum kann ich den Code nicht verfolgen
3.6 Browser-Abfangausnahme
3.6.1 Ausnahmebehandlungsmechanismus – ein Beispiel für ein Try/Catch/Finally-Muster
3.6.2 Arten von Ausnahmen
3.6.3 Wann sollten Ausnahmen „gefressen“ werden
3.7 Zusammenfassung
Teil 2 JavaScript Core
Kapitel 4 Sprachstruktur
4.1 Grundlegende Grammatik von JavaScript
4.1.1 Zeichensatz
4.1.2 Groß- und Kleinschreibung beachten
4.1.3 Trennzeichen
4.1.4 Wörter, Sätze und Absätze
4.1.5 Semikolon
4.1.6 Mark
4.1.7 Kommentare
4.1.8 Reservierte Wörter
4.2 Konstanten und Variablen
4.2.1 Konstanten und Variablen
4.2.2 Variablenbezeichner
4.2.3 Variablentyp
4.2.4 Deklaration von Variablen
4.2.5 Umfang der Variablen
4.3 Ausdrücke und Operatoren
4.3.1 Ausdruck
4.3.2 Betreiberübersicht
4.3.3 Arithmetische Operatoren
4.3.4 Vergleichsoperatoren
4.3.5 Logische Operatoren
4.3.6 Bitoperatoren
4.3.7 Zuweisungsoperator
4.3.8 Andere Betreiber
4.3.8.1 Bedingter Operator
4.3.8.2 Komma-Operator
4.3.8.3 Objektoperatoren
4.3.8.4 Typoperatoren
4.3.8.5 Void-Operator
4.3.8.6 Funktionsaufrufoperator
4.4 Kontrollanweisungen
4.4.1 Ausdrucksanweisung
4.4.2 Anweisungsblock
4.4.3 Bedingte Anweisung
4.4.4 Schleifenanweisung
4.4.5 Jump-Anweisung
4.4.6 Ausnahmebehandlungsanweisungen
4.4.7 Sonstige Aussagen
4.4.7.1 var-Anweisung
4.4.7.2 Funktionsanweisung
4.4.7.3 mit Aussage
4.4.7.4 Leere Anweisung
4.5 Zusammenfassung
Kapitel 5 Datentyp
5.1 Grundlegende Datentypen
5.1.1 Wert
5.1.2 String – ein Beispiel für stringbezogene Operationen
5.1.3 Boolescher Typ
5.2 Arrays und Objekte
5.2.1 Array
5.2.2 Objekt – ein Beispiel für einen Konstruktor
5.3 Funktionstyp – ein Beispiel für Funktion und Abschluss
5.4 Das magische Null und Undefinierte
5.4.1 null
5.4.2 undefiniert – einzigartiger Typ
5.5 Reguläre Ausdrücke
5.5.1 Konstanten regulärer Ausdrücke
5.5.2 Reguläres Ausdrucksobjekt
5.6 Werttypen und Referenztypen
5.6.1 Was sind Werte und Wertbezüge
5.6.2 Werte verwenden und Referenzen verwenden
5.6.3 Umrechnung zwischen Werten und Referenzen: Boxing und Unboxing
5.7 Typidentifikation und Typkonvertierung
5.7.1 Laufzeittyperkennung – zwei Beispiele für die Laufzeittyperkennung
5.7.2 Automatische Typkonvertierung und Beispiele
5.7.3 Erzwungene Typkonvertierung und ihre Beispiele
5.7.4 Erweiterte Verwendung – ein Beispiel für die Konvertierung benutzerdefinierter Typen
5.8 Vorsicht vor Zahlenfallen
5.8.1 Verwirrung – Präzisionsproblem von Gleitkommazahlen
5.8.2 Fehlerkorrektur und Beispiele
5.9 Zusammenfassung
Kapitel 6 Funktion
6.1 Funktionsdefinition und Funktionsaufruf
6.1.1 Funktionsdefinition
6.1.1.1 Deklarative Funktionsdefinitionen und Funktionsausdrücke und ihre Beispiele
6.1.1.2 Das Geheimnis der JavaScript-Funktionen – magischer Code
6.1.2 Funktionsaufruf
6.2 Funktionsparameter
6.2.1 Formale und tatsächliche Parameter
6.2.2 Argumente Objekt
6.2.2.1 Ein Beispiel für die Verwendung des Arguments-Objekts zur Erkennung formaler Parameter
6.2.2.2 Ein Beispiel für die Verwendung des Arguments-Objekts zum Empfang einer beliebigen Anzahl von Parametern
6.2.2.3 Ein Beispiel für die Verwendung des Arguments-Objekts zur Simulation einer Funktionsüberladung
6.2.3 Parametertypabgleich – ein Beispiel für die Verwendung von Argumenten zur Implementierung des Funktionsüberladungsmechanismus
6.3 Aufrufer und Eigentümer von Funktionen
6.3.1 Aufrufer der Funktion
6.3.2 Eigentümer einer Funktion – ein Beispiel für die Angabe eines Eigentümers für eine Funktion
6.3.3 Dynamischer Anruf – ausländischer Eigentümer
6.4 Funktionskonstanten und Abschlüsse
6.4.1 Anonyme Funktionen
6.4.2 Funktionsreferenz
6.4.3 Funktionsparameter und Funktionsrückgabewerte und ihre Beispiele
6.4.4 Erweiterte Nutzung – Schließung als lokale Domäne und verzögerte Auswertung
6.5 Abstraktion auf hoher Ebene – Funktionstyp und Funktionsvorlage
6.5.1 Dynamisches Erstellen von Funktionen – ein Beispiel für die Verwendung von Function zur Implementierung des Lambda-Operators
6.5.2 Muster – Funktionsfabrik und ihre Instanzen
6.6 Zusammenfassung
Kapitel 7 Objekt
7.1 Was ist ein Objekt
7.2 Objekteigenschaften und -methoden
7.2.1 Integrierte Eigenschaften von Objekten
7.2.2 Attribute zu Objekten hinzufügen und löschen
7.2.3 Reflexionsmechanismus – Eigenschaften von Aufzählungsobjekten
7.3 Objektkonstruktion
7.3.1 Konstruktor – ein Beispiel für eine Wrapper-Klasse für Gleitkommazahlen mit doppelter Genauigkeit
7.3.2 Standardkonstruktion und Kopierkonstruktion
7.3.3 Objektkonstanten
7.4 Zerstörung von Gegenständen und Recycling von Lagereinheiten
7.5 Integrierte JavaScript-Objekte
7.5.1 Mathe-Objekt
7.5.2 Datumsobjekt – Erstellen Sie einen einfachen Kalender
7.5.3 Fehlerobjekt
7.5.4 Andere eingebaute Objekte
7.5.5 Spezielle Objekte – globale Objekte und aufrufende Objekte
7.6 Zusammenfassung
Kapitel 8 Zusammenkunft
8.1 Arrays und Array-Elemente
8.1.1 Array-Aufbau
8.1.2 Array-Konstante
8.1.3 Array-Elemente
8.2 Array-Objekte und -Methoden
8.2.1 Elemente finden
8.2.2 Elemente hinzufügen und entfernen
8.2.3 Festlegen von Operationen und Beispielen
8.2.3.1 join()-Methode
8.2.3.2 reverse()-Methode
8.2.3.3 sort()-Methode
8.2.3.4 concat()-Methode
8.2.3.5 Slice()-Methode
8.2.3.6 splice()-Methode
8.2.3.7 toSgring()-Methode und toLocaleString()-Methode
8.3 Hash-Tabelle
8.3.1 Was ist eine Hash-Tabelle
8.3.2 Aufbau der Hash-Tabelle
8.3.3 Implementieren Sie einen einfachen HashTable-Typ
8.4 Erweiterte Verwendung – Vorgänge und Schließungen festlegen
8.5 Zusammenfassung
Kapitel 9 String
9.1 Saitenaufbau
9.1.1 String-Konstanten
9.1.2 Escape-Sequenzen
9.1.3 String-Konstruktor
9.2 Verwendung von Strings
9.2.1 Strings vergleichen
9.2.2 Extrahieren und Abrufen von Teilzeichenfolgen
9.2.3 Strings verketten und teilen
9.2.4 Mustervergleich von Zeichenfolgen – ein Beispiel für die Überprüfung des Zeichenfolgenformats
9.2.5 Andere Methoden
9.3 Strings und Zeichen-Arrays
9.4 String- und Textverarbeitung – JavaScript-Schachaufzeichnungsleser (1)
9.4.1 Anforderungsanalyse – Was sind Schachrekorde und Schachrekordleser
9.4.2 Systemdesign – String-Beschreibung von Schachaufzeichnungen und Schachbrettdaten
9.4.3 Systemimplementierung – Analyse und Verarbeitung von Schachaufzeichnungen
9.4.4 Vollständiger Schachrekordleser
9.5 Zusammenfassung
Kapitel 10 Reguläre Ausdrücke
10.1 Was ist ein regulärer Ausdruck?
10.1.1 Das Konzept des regulären Ausdrucks
10.1.2 Reguläre Ausdrücke in JavaScript
10.2 Regeln regulärer Ausdrücke
10.2.1 Wörtlicher Charakter
10.2.2 Zeichenklassen und Boolesche Operationen
10.2.3 Wiederholen
10.2.4 Auswahl, Gruppierung und Referenzierung
10.2.5 Passende Position angeben
10.2.6 Flags – Regeln für den erweiterten Mustervergleich
10.3 Mustervergleich
10.3.1 String-Methoden und Beispiele für den Mustervergleich
10.3.2 RegExp-Methode für den Mustervergleich
10.3.2.1 Ein Beispiel für die Verwendung der exec()-Methode, um den Geburtstag aus der ID-Nummer zu ermitteln
10.3.2.2 Ein Beispiel für die Verwendung der test()-Methode zum Durchlaufen einer Zeichenfolge
10.4 Über Wrapper-Objekte für reguläre Ausdrücke
10.4.1 RegExp-Objekt – Verwendung regulärer Ausdrücke zur Durchführung einer Volltextsuche
10.4.2 Instanzeigenschaften von RegExp
10.5 Leistungsstarke reguläre Ausdrücke
10.5.1 Lokale Teile regulärer Ausdrücke analysieren
10.5.2 Ein Beispiel – leistungsstarker Online-Editor
10.5.3 Erstellen einer neuen Grammatik – ein Beispiel für die Implementierung des JSVM2-Parsers in JSVM
10.6 Erweiterte Nutzung
10.7 Text mit regulären Ausdrücken verarbeiten
10.7.1 Erstellen Sie einen Preisformel-Editor
10.7.1.1 Anforderungsanalyse – Was ist der Preisformel-Editor?
10.7.1.2 Systemimplementierung – Implementierung des Preisformel-Editors
10.7.2 Erstellen Sie einen synchron scrollenden Songtext-Player
10.7.2.1 Anforderungsanalyse – Was ist ein synchron scrollender Songtext-Player
10.7.2.2 Systemdesign und -implementierung – Verarbeitung von LRC-Texten
10.8 Zusammenfassung
Teil 3 Browser und DOM
Kapitel 11 Browserobjekt
11.1 Fensterobjekt – das grundlegendste Browserobjekt
11.1.1 Fensterobjektübersicht
11.1.2 Lebenszyklus des Fensterobjekts
11.1.3 Eigenschaften und Methoden des Window-Objekts
11.1.4 Ein Beispiel für eine Multi-Window-Anwendung
11.2 Dokumentobjekt – repräsentativ für den Dokumentinhalt des Browserfensters
11.2.1 Übersicht über Dokumentobjekte
11.2.2 Dynamisch generierte Dokumente
11.2.3 Grundlegende Informationen zum Dokumentobjekt
11.2.4 Darstellungseigenschaften des Dokumentobjekts
11.2.5 Dokument-Unterobjektschnittstelle
11.2.5.1 Ein Beispiel für das Durchqueren von Ankerobjekten
11.2.5.2 Ein Beispiel für ein auf dem Kopf stehendes Bild
11.3 Dialog und Statusleiste
11.3.1 Erstellen Sie einen einfachen Dialog
11.3.2 Andere Arten von Dialogfeldern
11.3.2.1 Dialogfelder simulieren – Beispiele für die Erstellung eines Fensterdialogfelds und das Blockieren des Dialogfelds
11.3.2.2 showModalDialog und showModelessDialog – kein W3C- oder ECMAScrip-Standard
11.3.3 Statusleiste
11.4 Framework – oberes Fensterobjekt
11.4.1 Multi-Framework-Anwendung
11.4.2 Beziehung zwischen Frameworks
11.4.3 Benennung des Frameworks
11.4.4 JavaScript in Subframes
11.4.5 Rahmenanwendung – Multi-Tab-Anzeige
11.4.5.1 Was sind Registerkarten
11.4.5.2 Implementierung von Tabs – Erstellen Sie eine Seite mit Tabs
11.5 Formulare und Formularobjekte
11.5.1 Formobjekte und ihre Beispiele
11.5.2 Formularelemente definieren
11.5.3 Client-Formularvalidierung und Beispiele
11.5.4 Erstellen Sie eine universelle Client-Formularvalidierungskomponente
11.6 Weitere eingebaute Objekte
11.6.1 Navigatorobjekt – ein Repräsentant der Gesamtinformationen des Browsers
11.6.2 Bildschirmobjekt – liefert Informationen über die Bildschirmauflösung und die Anzahl der verfügbaren Farben
11.6.3 Standortobjekt – stellt die URL des Dokuments dar, das im aktuellen Fenster angezeigt wird
11.6.4 Geschichtsobjekt – ein interessantes Objekt
11.7 Zusammenfassung
Kapitel 12 Dokumentobjektmodell
12.1 Was ist DOM
12.1.1 Dokumente als Bäume darstellen
12.1.2 Baumknoten
12.1.3 Gemeinsame Eigenschaften und Methoden von DOM-Objekten
12.1.4 Die Beziehung zwischen HTML-Struktur und DOM-Objekten – Verwenden Sie JavaScript, um HTML-Dokumente über DOM zu bedienen
12.2 DOM- und Browser-Implementierung
12.2.1 Über die DOM-HTML-API
12.2.2 Ebenen und Eigenschaften von DOM
12.2.3 DOM-Konsistenz
12.2.4 Unterschied – DOM-Dialekt des Browsers
12.3 Eine Reihe von „Boxen“ – DOM-Elementen
12.3.1 Verschachtelte „Boxen“
12.3.2 Klassifizierung von „Boxen“ und „Box“-Inhalten
12.4 Knoten erstellen und löschen
12.4.1 Erstellen Sie einen neuen Knoten
12.4.2 Ebenenerweiterung – direkt erstellt durch Dokumentelemente
12.4.3 Speicherplatz zurückgewinnen – ungenutzte Knoten löschen
12.5 Auf DOM-Knoten zugreifen und diese bearbeiten
12.5.1 Öffnen Sie jedes Feld – Knoten durchqueren
12.5.2 Klären Sie die hierarchische Beziehung – Vater, Sohn und Bruder
12.5.3 So suchen Sie nach einem bestimmten Knoten
12.5.4 Knoten klonen – ein Beispiel für die Verwendung von cloneNode() zum Kopieren einer Tabelle
12.5.5 Mobile Knoten und ihre Beispiele
12.5.6 Tipps zum Hinzufügen neuer Zeilen und Sortieren
12.6 Daten lesen und schreiben – Attribute hinzufügen, ändern und löschen
12.7 Aussehen und Verhalten
12.7.1 DOM-Stilattribute
12.7.2 Steuern Sie das Anzeigen und Ausblenden von DOM-Elementen
12.7.3 Farbe und Größe ändern – ein einfaches und interessantes Beispiel
12.7.4 Position ändern – Erstellen Sie Text, der sich um einen Kreis dreht
12.7.5 Bearbeiten von Steuerelementen und deren Beispiele
12.7.6 Stilwechsel und ihre Beispiele
12.7.7 Verhalten ändern
12.8 XML DOM
12.8.1 Was ist XML-DOM
12.8.2 Verwendung von XML DOM – ein Beispiel für die Verwendung von XML zur Implementierung eines mehrstufigen zugehörigen Dropdown-Auswahlfelds
12.9 Zusammenfassung
Kapitel 13 Ereignisbehandlung
13.1 Was ist ein Event
13.1.1 Nachrichten- und Ereignisantwort
13.1.2 Browser-ereignisgesteuerter Mechanismus
13.2 Grundlegende Ereignisbehandlung
13.2.1 Ereignisse und Ereignistypen
13.2.2 Bindung von Ereignissen
13.2.3 Rufen Sie die Ereignisverarbeitungsfunktion direkt auf
13.2.4 Rückgabewert der Event-Handling-Funktion
13.2.5 Ereignisreaktion mit Parametern und Beispielen
13.2.6 „dieses“ Schlüsselwort
13.3 Standard-Event-Modell
13.3.1 Blasen und Capture – Ausbreitung von Browser-Ereignissen
13.3.2 Registrierung der Event-Handler-Funktion
13.3.3 Objekte als Event-Handler registrieren
13.3.4 Veranstaltungsmodule und Veranstaltungstypen
13.3.5 Über die Ereignisschnittstelle
13.3.5.1 Eigenschaften und Methoden der Event-Schnittstelle
13.3.5.2 Eigenschaften der UIEvent-Schnittstelle
13.3.5.3 Eigenschaften der MouseEvent-Schnittstelle
13.3.5.4 MutationEvent-Schnittstelle
13.3.6 Mixed-Event-Modell
13.3.7 Synthetische Ereignisse
13.4 Implementierung des Browser-Ereignisverarbeitungsmodells
13.4.1 Internet Explorer-Ereignismodell
13.4.1.1 Informationen zur IE-Ereignisregistrierung
13.4.1.2 Eigenschaften des IE-Ereignisobjekts
13.4.1.3 Event-Sprudeln im IE
13.4.2 Netscape 4-Ereignismodell
13.4.2.1 Ereigniserfassung und Beispiele in Netscape 4
13.4.2.2 Eigenschaften von Netscape 4-Ereignisobjekten
13.5 Rückrufe und benutzerdefinierte Ereignisse
13.5.1 Ereignisverarbeitungsmuster – ein Beispiel für die Implementierung eines einfachen Ereignisverarbeitungsmusters
13.5.2 Definition der Benutzerereignisschnittstelle
13.5.3 Event-Proxy und Event-Registrierung – ein Beispiel für die Implementierung einer Standard-Event-Schnittstelle
13.5.4 Standardmodus – Ereignisversand und -empfang
13.6 Ein Beispiel – erweiterte Datentabelle
13.6.1 Was ist eine erweiterte Datentabelle?
13.6.2 Ein Beispiel für die Korrektur des Tabellenkopfes mithilfe der doppelten Tabellenverschachtelung
13.6.3 Implementierung variabler Spaltenbreite
13.6.4 Zeile markieren – Präsentieren Sie eine Hintergrundfarbe, die sich von anderen Zeilen unterscheidet
13.6.5 Tipps – Code zum Stylesheet hinzufügen
13.7 Zusammenfassung
Kapitel 14 Cascading Style Sheets
14.1 Was sind Cascading Style Sheets?
14.1.1 CSS-Stile und Stylesheets
14.1.2 Standardisierung von CSS
14.1.3 Von Browsern unterstütztes CSS
14.2 JavaScript und CSS
14.2.1 Die Beziehung zwischen CSS und DOM
14.2.2 Beziehung zwischen CSS und IE
14.2.3 Browser-CSS-Kompatibilität
14.3 Steuern Sie CSS, um den Seitenstil zu ändern
14.3.1 Umsetzung der Trennung von Struktur und Darstellung und ihre Beispiele
14.3.2 Verwenden Sie JwaScript und CSS, um das Ersetzen mehrerer Stile der Seite in Echtzeit zu realisieren
14.4 Zusammenfassung
Kapitel 15 Skripterstellung für die Datenspeicherung
15.1 Was sind Cookies
15.1.1 Browser- und Client-Cookies
15.1.2 Cookie-Eigenschaften
15.2 Kundenzugriff auf Cookies
15.2.1 Cookie-Speicherung
15.2.2 Cookie-Lesung
15.3 Einschränkungen für Cookies
15.4 Cookie-Beispiel – Grüße wärmer machen
15.5 Kapselung von Cookie-Objekten
15.6 Was sind Benutzerdaten?
15.6.1 Browser- und Client-Benutzerdaten
15.6.2 Deklaration von Benutzerdaten
15.6.3 UserData-Eigenschaften und -Methoden
15.7 Client-Zugriff auf Benutzerdaten
15.7.1 Speicherung und Auslesen von Benutzerdaten
15.7.2 Sicherheit von Benutzerdaten
15.8 Einschränkungen von Benutzerdaten
15.9 Vergleich zwischen Benutzerdaten und Cookie
15.10 userData-Beispiel – ein Beispiel für die Verwendung von userData zum Speichern von Formulardaten auf der Clientseite
15.11 Zusammenfassung
Teil 4 Dateninteraktion
Kapitel 16 Synchronisation und Asynchronität
16.1 Was ist Synchronisation und Asynchronität?
16.2 Timeout-Einstellung und Zeitintervall
16.3 Verwendung des Timers – Abhören und Abfangen
16.3.1 Standardmodus – Monitor und seine Beispiele
16.3.2 Probleme, die bei der Verwendung von Timern beachtet werden sollten
16.4 Ein Beispiel – schöne Webuhr
16.4.1 Was ist eine Webuhr?
16.4.2 Die einfachste Webuhr
16.4.3 Design der Webuhr
16.4.4 Vollständiger Web Clock-Quellcode
16.5 Zusammenfassung
Kapitel 17 XML DOM und XML HTTP
17.1 Was ist ein XML-DOM-Objekt?
17.1.1 Einführung in XML DOM
17.1.2 Von Browsern unterstützte XML-DOM-Schnittstelle
17.1.2.1 XML-DOM-Standardschnittstelle
17.1.2.2 XML-DOM-Komponente des IE
17.1.2.3 Bearbeiten von XML-Dokumenten – ein Beispiel für die Verwendung von MSXML zum Bearbeiten von XML-Dokumenten
17.2 Versionskompatibilität von XML DOM – Browserübergreifende Anwendung von XML DOM
17.3 XML-DOM-Fehlerbehandlung
17.3.1 ParseError-Objekt zur Behandlung von Fehlermeldungen
17.3.2 Dokumente mit Fehlermeldungen
17.4 XML-DOM-Manipulation von XML-Dokumenten
17.4.1 Zugriffsknoten
17.4.2 Neuen Knoten erstellen
17.4.3 Verschieben und Ändern von Knoten und deren Beispiele
17.4.4 Knotenattribute lesen und schreiben und Daten lesen und schreiben
17.4.5 Dokument speichern
17.5 Ein Beispiel – JavaScript-Schachrekord-Reader (2)
17.5.1 Verwenden Sie XML, um Schachrekorde zu beschreiben
17.5.2 XML-Schachdatensätze in SGF-Schachdatensätze konvertieren
17.6 Was ist ein XML-HTTP-Objekt
17.6.1 Einführung in XML-HTTP-Objekte
17.6.2 Von Browsern unterstützte XML-HTTP-Objekte
17.7 Senden von Anfragen über XML HTTP
17.7.1 Verbindung herstellen
17.7.2 Anfrage senden
17.8 Lesen und Setzen von HTTP-Headern
17.8.1 Was sind HTTP-Header
17.8.2 HTTP-Header lesen und setzen
17.9 Serverantwort
17.9.1 Synchrone und asynchrone Antworten und ihre Beispiele
17.9.2 ResponseText und ResponseXML mit Antworttextinhalten
17.10 Zusammenfassung
Kapitel 18 Einführung in Ajax
18.1 Was ist Ajax
18.1.1 Ajax ist nicht mysteriös
18.1.2 Ajax-Anwendungsszenarien
18.1.3 Konkurrenten von Ajax – andere alternative Technologien
18.2 Eine vorläufige Erkundung von Ajax – meinem ersten Ajax-Programm
18.2.1 Beginnen Sie mit einer regulären Anwendung – einem einfachen Echtzeit-Chatroom
18.2.2 Lästige Seitenaktualisierung
18.2.3 Lösung ohne Aktualisierung – verbesserter Chatroom
18.2.4 Asynchrone Arbeit – die Lösung für Verzögerungen
18.3 Analyse der Ajax-Prinzipien
18.3.1 XML-HTTP-Echtzeitkommunikation und ein einfaches Beispiel für die Kapselung des AjaxProxy-Objekts
18.3.2 Dynamische Anzeige von Daten – eine wichtige Funktion von Ajax zur Verbesserung des interaktiven Erlebnisses
18.3.3 Nutzen Sie die Leistungsfähigkeit von XML
18.3.4 Alles mit JavaScript binden
18.3.5 Standards hinter Anwendungen
18.4 Ajax-Beispiel – Echtzeit-Chat-Tool
18.4.1 Was ist ein Live-Chat-Tool?
18.4.2 Anforderungsanalyse – Eckpunkte zur Implementierung der Echtzeit-Chat-Funktion
18.4.3 Systemimplementierung – Implementierung der Echtzeit-Chat-Funktion
18.4.4 Zusammenfassung
18.5 Zusammenfassung
Kapitel 19 Standards und Kompatibilität
19.1 Standardisierungsorganisationen
19.1.1 W3C- und DOM-Standards
19.1.2 ECMA- und JavaScript-Standards
19.1.3 Internetstandards
19.2 Plattform- und Browserkompatibilität
19.2.1 Methode des kleinsten gemeinsamen Nenners
19.2.2 Defensive Codierung
19.2.3 Client-Detektor
19.2.4 Merkmalserkennung
19.2.5 Standards umsetzen
19.2.6 Moderates Herunterfahren
19.3 Sprachversionskompatibilität
19.3.1 Sprachattribut
19.3.2 Versionstest
19.4 So implementieren Sie browserübergreifende Anwendungen
19.4.1 Kompromisse – Abgrenzung des Umfangs der Unterstützung
19.4.2 Grundlegendes Moduldesign – unabhängige Kompatibilitätserkennung
19.4.3 Aufteilung der Laufebenen
19.4.4 Geben Sie die richtigen Informationen an – machen Sie Ihren Code nicht still
19.4.5 Angemessene Anwendungstests – „Kompatibilitätsteufel“ wird Ihnen immer einen Tritt versetzen, wenn Sie nicht aufpassen
19.4.6 Näherungsstandard und Näherungsprinzip
19.5 Blick in die Zukunft
19.6 Zusammenfassung
Kapitel 20 Informationssicherheit
20.1 Private Informationen des Benutzers
20.2 Verbotener und eingeschränkter Betrieb
20.2.1 Eingeschränkte Eigenschaften
20.2.2 Eingeschränkter Betrieb
20.2.3 Skriptsicherheitsstufe
20.2.4 Skript-Debugging
20.3 Hüten Sie sich vor Angreifern hinter den Kulissen
20.3.1 Angriffsmittel
20.3.2 Versteckter Datenfluss
20.3.3 Seitenverkleidung
20.3.4 Hinweise gefunden
20.3.5 Maßnahmen zur Prävention
20.3.5.1 Verschlüsselung der übertragenen Daten
20.3.5.2 Quellcode vor Benutzern verbergen
20.4 Same-Origin-Richtlinie
20.4.1 Was ist die Same-Origin-Policy
20.4.2 Vor- und Nachteile der Same-Origin-Richtlinie
20.4.3 Durchbrechen Sie die Same-Origin-Strategie
20.5 Sichere Zonen und signierte Skripte
20.5.1 Konfigurierbare Sicherheitsrichtlinienlösung
20.5.2 Sichere Zone des Internet Explorers
20.5.3 Das Signaturskript von Netscape
20.6 Sicherheit des Codes selbst – Verschlüsselung und Verschleierung
20.6.1 Warum Verschlüsselung und Verschleierung
20.6.2 Clientseitige Verschlüsselungstechnologie und Beispiele
20.6.3 Prinzip der Code-Verschleierung
20.6.4 JavaScript-Code-Verschleierungstool – ein Beispiel für einen Code-Verschleierungsalgorithmus
20.6.5 Kombination aus Verschlüsselung und Verschleierung
20.7 Zusammenfassung
Teil 5 Jenseits von JavaScript
Kapitel 21 Objektorientiert
21.1 Was ist objektorientiert
21.1.1 Klassen und Objekte
21.1.2 Öffentlich und privat – Attributkapselung
21.1.3 Arten von Eigenschaften und Methoden
21.2 Magischer Prototyp
21.2.1 Was ist ein Prototyp?
21.2.2 Tipps zur Verwendung von Prototypen
21.2.2.1 Eigenschaften zu Prototypobjekten hinzufügen
21.2.2.2 Punktobjekt mit Standardwert
21.2.2.3 Der Löschvorgang stellt die Objekteigenschaften auf die Standardwerte zurück
21.2.2.4 Verwenden Sie Prototypen, um Getter zu entwerfen
21.2.2.5 Der Löschvorgang stellt die Sichtbarkeit der Prototypeigenschaften wieder her
21.2.2.6 Mithilfe von Prototypen eine große Anzahl von Kopien erstellen
21.2.2.7 Verwenden Sie Prototypen, um statische Methoden zu definieren
21.2.3 Die Essenz des Prototyps und seine Beispiele
21.2.4 Der Wert und die Grenzen des Prototyps
21.3 Vererbung und Polymorphismus
21.3.1 Was ist Vererbung
21.3.2 Methoden zur Implementierung der Vererbung
21.3.2.1 Strukturelle Vererbungsmethode und ihre Beispiele
21.3.2.2 Prototypische Vererbung und ihre Beispiele
21.3.2.3 Instanzvererbungsmethode und ihre Beispiele
21.3.2.4 Erbrecht und seine Beispiele kopieren
21.3.2.5 Vergleich mehrerer Vererbungsmethoden
21.3.2.6 Gemischtes Erbrecht und seine Beispiele
21.3.3 Einfache Vererbung und Mehrfachvererbung
21.3.4 Schnittstelle und ihre Implementierung
21.3.5 Polymorphismus und seine Implementierung
21.4 Aufbau und Zerstörung
21.4.1 Konstruktor
21.4.2 Mehrfachkonstruktion
21.4.3 Zerstörung
21.5 Geheimnis! „dieses“ Labyrinth
21.5.1 Unzählige Fallen – das verstörende Geheimnis „dieses“
21.5.1.1 Verwendung dieses Pronomens
21.5.1.2 diese „Falle“
21.5.1.3 Asynchrones Problem dieses Pronomens
21.5.2 Vor- und Nachteile austauschen – schlechte Nutzungsgewohnheiten
21.5.3 Asynchroner Aufruf – Wer hat mein „Dies“ berührt
21.5.4 Die Wahrheit aufdecken – Die Natur von „diesem“ in JavaScript
21.5.5 Keine Schwierigkeit mehr – Verwenden Sie die Schließung, um „diese“ Referenz zu korrigieren
21.6 Gegenstände verpacken
21.6.1 Unterscheiden Sie zwischen Werten und Referenzen
21.6.2 Ein- und Auspacken
21.7 Metaklasse, Klassenvorlage
21.7.1 Was ist eine Metaklasse?
21.7.2 Metaklasse – die Klasse, die die Klasse erstellt
21.7.3 Warum Metaklasse verwenden
21.7.4 Werksklasse
21.7.4.1 Was ist eine Klassenfabrik?
21.7.4.2 Warum eine Klassenfabrik bauen
21.8 Wer ist der Schöpfer
21.8.1 Grundsätze, die für alles gelten
21.8.2 Das Nonplusultra der Abstraktion – ein Beispiel für ein abstraktes Muster
21.8.3 Rückkehr zur Natur, homologe Architektur
21.9 Zusammenfassung
Kapitel 22 Abschlüsse und funktionale Programmierung
22.1 Dynamische Sprachen und Schließungen
22.1.1 Dynamische Sprache
22.1.2 Syntaxdomäne und Ausführungsdomäne
22.1.3 JavaScript-Abschlüsse – ein Beispiel, das die Essenz von Abschlüssen widerspiegelt
22.2 Merkmale und Verschlussformen
22.2.1 Das Innere der Schließung – der Bereich der Autonomie
22.2.2 Zugriff auf die äußere Umgebung – ein Beispiel für die Verwendung von Schließungen zur Veränderung der äußeren Umgebung
22.2.3 Abschlüsse und objektorientiert
22.2.4 Andere Verschlussformen
22.3 Szenarien, in denen eine Schließung nicht geeignet ist
22.4 Funktionale Programmierung
22.4.1 Was ist funktionale Programmierung?
22.4.1.1 Funktionen sind vom ersten Typ
22.4.1.2 Abschlüsse und funktionale Programmierung
22.4.1.3 Currying – ein interessantes Konzept
22.4.1.4 Verzögerte Auswertung und Fortsetzung – ein Beispiel für eine Fibonacci-Endlosfolge
22.4.2 Funktionale Programmierung, Formulierung und mathematische Modelle – ein Beispiel für eine parabolische Gleichung
22.4.3 Vorteile der funktionalen Programmierung
22.4.3.1 Vorteile von Unit-Tests
22.4.3.2 Debugging-Vorteile
22.4.3.3 Vorteile der Parallelität
22.4.3.4 Vorteile der Hot-Code-Bereitstellung
22.4.3.5 Maschinengestütztes Denken und Optimieren
22.4.4 Nachteile der funktionalen Programmierung
22.4.4.1 Nebenwirkungen von Schließungen
22.4.4.2 Rekursive Form
22.4.4.3 Nebenwirkungen einer verzögerten Bewertung
22.5 Abschlüsse und objektorientiert
22.5.1 Private Domain
22.5.2 Namespace-Management
22.5.3 Freundschaft – ein sehr interessantes Konzept
22.6 JavaScript-Code im Python-Stil
22.6.1 Der einfachste Code
22.6.2 Leichte Wiederverwendung
22.6.2.1 JSON
22.6.2.2 Funktional
22.6.2.3 Iterationsfunktion – ein Beispiel für eine Array-Iterationsfunktion
22.6.3 Modulverwaltung und ihre Beispiele
22.7 Zusammenfassung
Kapitel 23 Modulebenenverwaltung
23.1 Modulares Management
23.1.1 Modularisierung – Code-Wiederverwendung
23.1.2 JavaScript-Modulverwaltung
23.2 Offen-Geschlossen-Prinzip und schnittstellenorientiert
23.2.1 Offenes und geschlossenes Prinzip
23.2.2 Schnittstellenorientiert
23.3 Namespace-Management
23.3.1 Was ist ein Namespace?
23.3.2 Warum Namespaces verwenden
23.3.3 JavaScript-Namespace-Verwaltung
23.4 Abhängigkeiten aufrufen
23.4.1 Modulabhängigkeiten
23.4.2 Verwaltung von Modulabhängigkeiten
23.5 Verwenden Sie Code, um Code zu verwalten
23.5.1 Verwaltung der Laufzeitumgebung
23.5.2 Verwalteter Code – ein einfacher verwalteter Code-„Container“
23.5.3 Ein vollständiger Codeverwaltungscontainer
23.6 Zusammenfassung
Kapitel 24 Dynamische Konstruktion
24.1 Lassen Sie den Code den Code schreiben
24.1.1 Dynamisches Parsen von Skripten
24.1.2 Grammatikerweiterung – Erstellen Sie Ihre eigene Sprache
24.2 Grammatik „erfinden“
24.2.1 Reguläre Ausdrücke und Syntaxanalyse und Beispiele
24.2.2 Eine einfache Grammatikparser-Implementierung
24.2.2.1 Was ist die JavaScript 2.0-Syntax
24.2.2.2 Implementierung einiger wichtiger Funktionen der JavaScript 2.0-Syntax
24.3 Implementieren Sie Ihren eigenen Dialekt – LispScript
24.3.1 Von JavaScript zu Lisp
24.3.2 Erste Arbeiten – allgemeiner JavaScript-Code
24.3.3 Axiome, Ausdrücke
24.3.4 Sieben Grundpostulate der funktionalen Programmierung
24.3.4.1 „Referenz“-Postulat
24.3.4.2 „Atomisches“ Postulat
24.3.4.3 Postulat „Gleichwertigkeit“
24.3.4.4 Postulat „Tabellenkopf“
24.3.4.5 Postulat „Resttabelle“
24.3.4.6 Postulat „Summentabelle“
24.3.4.7 „Bedingtes“ Postulat
24.3.5 Funktionsgrammatik
24.3.6 Definieren neuer Funktionen mit LispScript
24.3.7 Eine Überraschung--_eval
24.3.8 Andere Erweiterungen
24.3.9 Zusammenfassung
24.3.10 Laufzeitumgebung und Codecontainer – Sehen Sie sich die tatsächliche Leistung des „neu erfundenen“ LispScript an
24.4 Zusammenfassung
Kapitel 25 Ausführungseffizienz
25.1 Warum sollten wir über Ausführungseffizienz sprechen
25.1.1 Beschwerden von Kunden – Wie langsam kann JavaScript sein
25.1.2 Wessen Schuld ist, dass der Code langsamer wird
25.2 Der Preis der Schließung
25.2.1 Leistungsprobleme durch übermäßige Kapselung
25.2.2 Vor- und Nachteile des Versteckens von Informationen
25.2.3 Kosten für den Bau von Objekten
25.3 Fließendes Feuer in der Kiste
25.3.1 DOM-Speicheraufwand
25.3.2 Browser-Speicherverwaltung
25.3.3 Sehen Sie eine Tatsache deutlich – die Existenz von Speicherlecks
25.3.4 Hinweis – Schließen Sie Ihre „Box“ rechtzeitig
25.3.5 Klärung einiger Missverständnisse
25.3.5.1 Skript erstellt DOM dynamisch und verursacht Speicherverlust
25.3.5.2 Schließungen verursachen Speicherverluste
25.4 Nachrichten – Teufel und Engel
25.4.1 Leistungsanalyse des dynamischen Parsings – ein Effizienztest dynamischer Eigenschaften
25.4.2 Entwicklungseffizienz und Ausführungseffizienz – immer eine schwierige Wahl
25.4.3 Schönheit und Anwendbarkeit – Lernen Sie, der Versuchung des Teufels zu widerstehen
25.4.4 In den Augen der Kunden wie ein Engel agieren
25.5 Lass den Code tanzen
25.5.1 Einfachheit ist schön – Schlankheitscode
25.5.2 Die perfekteste Anwendung ist die Nichtverwendung
25.5.3 Hohe Abstraktion soll das Problem vereinfachen
25.5.4 Logik und Ausdruck sind gleichermaßen wichtig
25.5.5 Halten Sie den Kodex streng
25.5.6 Schöner Schreibstil – macht Leser glücklich
25.6 Zusammenfassung
Kapitel 26 Anwendungsframework
26.1 Übersicht über das Anwendungsframework
26.1.1 Was ist ein Anwendungsframework?
26.1.2 Komponenten des Anwendungsframeworks
26.1.2.1 Klassenbibliothek
26.1.2.2 Kernmodul
26.1.2.3 Umgebungskonfiguration
26.1.2.4 Benutzerhandbuch
26.2 Warum ein Anwendungsframework entwerfen
26.2.1 Geltungsbereich Rahmen
26.2.2 Vor- und Nachteile von Anwendungsframeworks
26.3 So entwerfen Sie ein Anwendungsframework
26.3.1 Das Designziel erfassen
26.3.2 Designrichtlinien für das Anwendungsframework
26.3.3 Welche Art von Anwendungsframework ist ein ausgereiftes Anwendungsframework?
26.3.4 Entwurfsmethode für das Anwendungsframework
26.3.5 Echter Kampf! Entwerfen Sie ein einfaches Anwendungsframework
26.3.5.1 Selbstbeschreibend
26.3.5.2 Grundlegende Schnittstelle und semantischer Code
26.3.5.3 Prototypenerweiterung von Kernobjekten
26.3.5.4 Einfache Methode
26.3.5.5 Namensräume
26.3.5.6 Standard- und browserübergreifende Unterstützung
26.3.5.7 Event-Modell – Silvernas Event-Modell
26.3.5.8 Anwendungsmodus
26.3.5.9 Ajax-Komponenten bereitstellen
26.3.5.10 Speicherverwaltung und andere
26.4 Praktische Anwendung des Frameworks – Widgets, die auf dem Silverna 2.0-Framework entwickelt wurden
26.5 Bestehendes Anwendungsframework
26.5.1 Prototyp
26.5.2 JQuery
26.5.3 Dojo
26.5.4 JSVM
26.5.5 Andere Frameworks
26.5.5.1 Bindows (gegründet 2003)
26.5.5.2 BackBase (gegründet 2003)
26.5.5.3 DOJO (in Entwicklung, gegründet im September 2004)
26.5.5.4 Open Rico (in Entwicklung, gegründet im Mai 2005, basierend auf einem frühen proprietären Framework)
26.5.5.5 qooxdoo (in Entwicklung, gegründet im Mai 2005)
26.5.5.6 Tibet (in Entwicklung, erstellt im Juni 2005)
26.5.5.7 AJFORM (erstellt im Juni 2005)
26.6 Zusammenfassung