O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

JavaScript, 6th Edition

Book Description

  • Neuauflage des deutschen JavaScript-Klassikers.+ Seit vielen Jahren immer wieder hochgelobt für seine gute Didaktik.+ Vermittelt browserübergreifendes Programmieren+ HTML 5 wird auch behandelt.

Table of Contents

  1. Cover
  2. Titel
  3. Impressum
  4. Inhaltsübersicht
  5. Inhaltsverzeichnis
  6. 1 Einleitung
    1. 1.1 Ziel dieses Buches
    2. 1.2 Aufbau dieses Buches
      1. 1.2.1 ECMAScript
      2. 1.2.2 JavaScript im Browser
      3. 1.2.3 Webapplikationen
      4. 1.2.4 Referenz
      5. 1.2.5 Beispieldateien
    3. 1.3 Danksagungen
  7. 2 Überblick
    1. 2.1 Ablauf einer Abfrage im Web
      1. 2.1.1 Geräte und Internetzugang
      2. 2.1.2 Webbrowser
      3. 2.1.3 Aubrufen einer Webseite
      4. 2.1.4 Die Antwort des Servers
      5. 2.1.5 Verarbeitung auf dem Server
      6. 2.1.6 Verarbeitung auf dem Client
    2. 2.2 JavaScript
      1. 2.2.1 Entstehungsgeschichte
      2. 2.2.2 ECMAScript
      3. 2.2.3 JavaScript-Versionen
      4. 2.2.4 Verwandte Standards
      5. 2.2.5 Frameworks und Funktionsbibliotheken
      6. 2.2.6 Andere Einsatzgebiete von JavaScript bzw. ECMAScript
    3. 2.3 Weiterentwicklung und zusätzliche Informationen
  8. 3 Erste Schritte in JavaScript
    1. 3.1 Erstellung eines HTML-Dokuments mit JavaScript-Code
      1. 3.1.1 Die grundlegende HTML-Datei
      2. 3.1.2 Grundaufbau eines HTML-Dokuments
      3. 3.1.3 JavaScript-Code einfügen
      4. 3.1.4 Mehrere JavaScript-Befehle
      5. 3.1.5 Einfache Berechnungen
    2. 3.2 Auf Benutzereingaben reagieren
    3. 3.3 Kommentare
    4. 3.4 Darstellung mit einem nicht JavaScript-fähigen Browser
    5. 3.5 js-Bibliotheksdatei
    6. 3.6 Quellcode anzeigen
  9. 4 Variablen
    1. 4.1 Variablen einsetzen
    2. 4.2 Variablen definieren
    3. 4.3 Ausgangswert einer Variablen
    4. 4.4 Variablennamen
    5. 4.5 Berechnungen
    6. 4.6 Operatoren
      1. 4.6.1 Rechenoperatoren
      2. 4.6.2 Inkrement- und Dekrement-Operatoren
      3. 4.6.3 Zuweisungsoperatoren
      4. 4.6.4 Der typeof-Operator
      5. 4.6.5 Bitweise Operatoren
  10. 5 Verzweigungen
    1. 5.1 if-Abfragen
      1. 5.1.1 Vergleichsoperatoren
      2. 5.1.2 Die else-Anweisung
      3. 5.1.3 Boolesche Variablen überprüfen
      4. 5.1.4 Geschachtelte if-Abfragen
      5. 5.1.5 Der Negationsoperator
      6. 5.1.6 Boolesche Operatoren
    2. 5.2 Der Konditional-Operator ?:
    3. 5.3 switch-Anweisungen
  11. 6 Schleifen
    1. 6.1 Die for-Schleife
      1. 6.1.1 Grundaufbau der for-Schleife
      2. 6.1.2 Die Schleifenvariable selbst einsetzen
      3. 6.1.3 Die Schrittweite festlegen
      4. 6.1.4 Endlosschleifen
      5. 6.1.5 Sofortiger Abbruch
    2. 6.2 Die while-Schleife
    3. 6.3 break
    4. 6.4 continue
    5. 6.5 Die do-while-Schleife
  12. 7 Funktionen
    1. 7.1 Funktionen definieren und aufrufen
      1. 7.1.1 Aufbau einer Funktion
      2. 7.1.2 Eine Funktion aufrufen
      3. 7.1.3 Eine Funktion als Reaktion auf Benutzereingaben aufrufen
    2. 7.2 Übergabewerte
      1. 7.2.1 Feste Anzahl von Argumenten
      2. 7.2.2 Funktionsaufrufe mit Variablenübergabe
      3. 7.2.3 Variable Anzahl von Argumenten
    3. 7.3 Rückgabewerte
    4. 7.4 Globale und lokale Variablen
      1. 7.4.1 Globale Variablen
      2. 7.4.2 Lokale Variablen
      3. 7.4.3 Globale oder lokale Variablen?
    5. 7.5 Vordefinierte Funktionen
      1. 7.5.1 parseInt()
      2. 7.5.2 parseFloat()
      3. 7.5.3 eval()
    6. 7.6 Fortgeschrittene Themen im Zusammenhang mit Funktionen
      1. 7.6.1 Das Function-Objekt
      2. 7.6.2 Anonyme Funktionen
      3. 7.6.3 Innere Funktionen
      4. 7.6.4 Rekursive Funktionen
  13. 8 Objekte
    1. 8.1 Was sind Objekte?
    2. 8.2 Mit Objekten arbeiten
      1. 8.2.1 Den Konstruktor aufrufen
      2. 8.2.2 Auf Eigenschaften zugreifen
      3. 8.2.3 Methoden verwenden
      4. 8.2.4 for..in-Schleife
      5. 8.2.5 Der instanceof-Operator
      6. 8.2.6 with
      7. 8.2.7 Call by Reference
    3. 8.3 Objekte definieren
      1. 8.3.1 Das Object-Objekt
      2. 8.3.2 Einen Konstruktor definieren
      3. 8.3.3 Konstruktor mit Übergabewert
      4. 8.3.4 Die Kurzschreibweise JSON
      5. 8.3.5 Objekte ineinander schachteln
    4. 8.4 Kapselung
    5. 8.5 Objekte erweitern
      1. 8.5.1 Eigenschaften hinzufügen
      2. 8.5.2 Methoden hinzufügen
    6. 8.6 Vererbung
      1. 8.6.1 Die Prototypkette
      2. 8.6.2 Überschreiben von Eigenschaften
      3. 8.6.3 Überschreiben von Methoden
    7. 8.7 Erweiterungen in ECMAScript 5
      1. 8.7.1 Eigenschaften festlegen
      2. 8.7.2 Veränderungen des Objekts einschränken
      3. 8.7.3 Zugriffsmethoden definieren
      4. 8.7.4 Eigenschaften entfernen
      5. 8.7.5 Die Eigenschaften eines Objekts durchlaufen
      6. 8.7.6 Der Strict Mode
  14. 9 Vordefinierte Objekte
    1. 9.1 Das Date-Objekt
      1. 9.1.1 Ein Date-Objekt erzeugen
      2. 9.1.2 Das Datum und die Uhrzeit festlegen
      3. 9.1.3 Ein Datum ausgeben
      4. 9.1.4 Zeitdifferenzen berechnen
    2. 9.2 Das Math-Objekt
      1. 9.2.1 Vordefinierte Konstanten
      2. 9.2.2 Zahlen runden
      3. 9.2.3 Zufallszahlen
    3. 9.3 Das String-Objekt
      1. 9.3.1 charAt()
      2. 9.3.2 indexOf()
      3. 9.3.3 lastIndexOf()
      4. 9.3.4 substring()
      5. 9.3.5 split()
      6. 9.3.6 Länge eines Strings
    4. 9.4 Das Array-Objekt
      1. 9.4.1 Ein Array erzeugen
      2. 9.4.2 Auf die Elemente eines Arrays zugreifen
      3. 9.4.3 Ein Array initialisieren
      4. 9.4.4 Dynamische Arrays
      5. 9.4.5 Unterschiedliche Datentypen in Arrays
      6. 9.4.6 Elemente zu einem String zusammenfügen
      7. 9.4.7 Die Reihenfolge in einem Array umkehren
      8. 9.4.8 Array-Inhalte sortieren
      9. 9.4.9 Kurzschreibweise für Arrays
      10. 9.4.10 Erweiterungen in ECMAScript 5
  15. 10 Fehlerbehandlung
    1. 10.1 Fehlermeldungen
    2. 10.2 Fehlerarten
      1. 10.2.1 Syntaxfehler
      2. 10.2.2 Laufzeitfehler
      3. 10.2.3 Logische Fehler
    3. 10.3 Debugger
    4. 10.4 Exception Handling
    5. 10.5 Das Error-Objekt
    6. 10.6 Exceptions auslösen
  16. 11 JavaScript im Browser
    1. 11.1 Das Browserfenster
      1. 11.1.1 Der allgemeine Aufbau
      2. 11.1.2 Fenster erzeugen
      3. 11.1.3 Ein Fenster schließen
      4. 11.1.4 Ein Fenster in den Vordergrund bringen
      5. 11.1.5 Zwischen Fenstern kommunizieren
      6. 11.1.6 IFrames
      7. 11.1.7 Dialogfenster
    2. 11.2 Navigation
      1. 11.2.1 Das location-Objekt
      2. 11.2.2 Das history-Objekt
      3. 11.2.3 Browser-Cache
    3. 11.3 JavaScript-Code im Browserfenster ausführen
      1. 11.3.1 Direkte Ausführung beim Laden des HTML-Dokuments
      2. 11.3.2 Ereignisgesteuerte Ausführung
      3. 11.3.3 Verzögerte Ausführung mit Timern
      4. 11.3.4 Regelmäßige Ausführung mit Intervallen
      5. 11.3.5 Probleme bei der Ausführung von JavaScript-Code
    4. 11.4 Browserversionen überprüfen
      1. 11.4.1 Das navigator-Objekt abfragen
      2. 11.4.2 Die JavaScript-Version im <script>-Tag angeben
      3. 11.4.3 Die hasFeature()-Methode des DOM-Standards verwenden
      4. 11.4.4 Objekte überprüfen
    5. 11.5 Sicherheit
      1. 11.5.1 Herkunft eines Skripts
      2. 11.5.2 Sicherheitszonen
      3. 11.5.3 Zertifikate
  17. 12 Das Document Object Model
    1. 12.1 DOM-Versionen
    2. 12.2 Aufbau eines Dokuments
      1. 12.2.1 Der DOM-Baum
    3. 12.3 Elemente ansprechen
      1. 12.3.1 Auf Elemente über das id-Attribut zugreifen
      2. 12.3.2 Mit den vordefinierten Arrays arbeiten
      3. 12.3.3 Kinder und Eltern ansprechen
    4. 12.4 Elemente verändern
      1. 12.4.1 Den Inhalt eines Textknotens ändern
      2. 12.4.2 Andere Eigenschaften ändern
      3. 12.4.3 Die Darstellung ändern
      4. 12.4.4 innerHTML
    5. 12.5 Elemente hinzufügen
      1. 12.5.1 Einen Textknoten hinzufügen
      2. 12.5.2 Andere Elemente hinzufügen
      3. 12.5.3 Neuen HTML-Code einfügen
    6. 12.6 Elemente umhängen und kopieren
      1. 12.6.1 Elemente umhängen
      2. 12.6.2 Elemente kopieren
    7. 12.7 Elemente entfernen
  18. 13 Ereignisse
    1. 13.1 Das grundlegende Ereignismodell
      1. 13.1.1 Funktionsweise
      2. 13.1.2 Event-Handler festlegen
      3. 13.1.3 Verfügbare Event-Handler
      4. 13.1.4 onclick
      5. 13.1.5 onmouseover und onmouseout
      6. 13.1.6 onload und onunload
      7. 13.1.7 Standardaktionen unterbinden
      8. 13.1.8 Ereignisse mittels Methodenaufruf auslösen
    2. 13.2 Ereignisse im W3C-Standard
      1. 13.2.1 Event-Listener
      2. 13.2.2 Event-Capturing und Event-Bubbling
      3. 13.2.3 Das Event-Objekt
      4. 13.2.4 Ereignisse selbst erzeugen
    3. 13.3 Ereignisse im Microsoft Internet Explorer bis 8.0
      1. 13.3.1 Event-Listener
      2. 13.3.2 Das event-Objekt
      3. 13.3.3 Event-Capturing und Event-Bubbling
    4. 13.4 Browserunabhängiges Drag&Drop
      1. 13.4.1 Funktionsweise des Drag&Drop-Skripts
      2. 13.4.2 Verschiedene Ereignismodelle kombinieren
  19. 14 Formulare
    1. 14.1 Formulare im Objektmodell
      1. 14.1.1 Das Form-Objekt
      2. 14.1.2 Formularelemente
      3. 14.1.3 Relative Adressierung
    2. 14.2 Textfelder
      1. 14.2.1 Das Text-Objekt – einzeilige Textfelder
      2. 14.2.2 Das Textarea-Objekt – mehrzeilige Textfelder
      3. 14.2.3 Das Password-Objekt
      4. 14.2.4 Das Hidden-Objekt
    3. 14.3 Schaltflächen
      1. 14.3.1 Das Button-Objekt
      2. 14.3.2 Das Submit-Objekt
      3. 14.3.3 Das Reset-Objekt
    4. 14.4 Auswahlfelder
      1. 14.4.1 Das Checkbox-Objekt
      2. 14.4.2 Das Radio-Objekt
    5. 14.5 Auswahllisten
      1. 14.5.1 Das Select-Objekt – Einfachauswahl
      2. 14.5.2 Das Select-Objekt – Mehrfachauswahl
      3. 14.5.3 Ein Select-Objekt verändern
      4. 14.5.4 Die Einträge in einem Select-Objekt gruppieren
    6. 14.6 Dateiauswahl
      1. 14.6.1 Das FileUpload-Objekt
    7. 14.7 Ergänzungen in HTML5
      1. 14.7.1 Neue Formularelemente
      2. 14.7.2 Zahlen eingeben
      3. 14.7.3 Kalender
      4. 14.7.4 Farbauswahl
      5. 14.7.5 Fortschrittsanzeige
      6. 14.7.6 Das datalist-Element
    8. 14.8 Formulare gestalten
      1. 14.8.1 Formularelemente beschriften
      2. 14.8.2 Formularelemente gruppieren
      3. 14.8.3 Aktivierungsreihenfolge
      4. 14.8.4 Das erste Eingabefeld aktivieren
      5. 14.8.5 Formularelemente deaktivieren
      6. 14.8.6 Die Eingabetaste im Zusammenhang mit Formularen
    9. 14.9 Eingegebene Daten verarbeiten
      1. 14.9.1 Formularelemente voneinander abhängig machen
      2. 14.9.2 Formularinhalte an den Server schicken
      3. 14.9.3 Formulareingaben überprüfen
      4. 14.9.4 Daten für die spätere Verwendung speichern
      5. 14.9.5 Sicherheitsaspekte beim Versenden von Formularen
      6. 14.9.6 Daten per E-Mail versenden
  20. 15 Reguläre Ausdrücke
    1. 15.1 Reguläre Ausdrücke verwenden
      1. 15.1.1 Kurzschreibweise
      2. 15.1.2 Modifikatoren
      3. 15.1.3 Besondere Zeichen
      4. 15.1.4 Multiplikatoren
      5. 15.1.5 Mehrere Zeichen zusammenfassen
      6. 15.1.6 Das Oder-Zeichen
      7. 15.1.7 Anker
      8. 15.1.8 Zeichenklassen
      9. 15.1.9 Klammern
    2. 15.2 Das RegExp-Objekt
      1. 15.2.1 Der RegExp()-Konstruktor
      2. 15.2.2 Methoden des RegExp-Objekts
      3. 15.2.3 Das String-Objekt im Zusammenhang mit regulären Ausdrücken
    3. 15.3 Alternativen
      1. 15.3.1 Nach einem bestimmten Teilstring suchen
      2. 15.3.2 Einen String auf bestimmte Zeichen beschränken
  21. 16 Bilder und Animationen
    1. 16.1 Bilddateien einbinden und verändern
      1. 16.1.1 Bildformate
      2. 16.1.2 Das Image-Objekt
      3. 16.1.3 Bilder ersetzen
      4. 16.1.4 Bilder vorher laden
      5. 16.1.5 Bilder positionieren
      6. 16.1.6 Die Reihenfolge von Bildern festlegen
      7. 16.1.7 Animationen
    2. 16.2 Mit JavaScript zeichnen
      1. 16.2.1 Die Zeichenfläche
      2. 16.2.2 Rechtecke
      3. 16.2.3 Pfade
      4. 16.2.4 Kreise
      5. 16.2.5 Animationen mit dem Canvas-Objekt
    3. 16.3 Vektorgrafiken
      1. 16.3.1 SVG-Dateien erstellen
      2. 16.3.2 Vektorgrafiken einbinden
      3. 16.3.3 Auf die Elemente einer Vektorgrafik zugreifen
      4. 16.3.4 Vektorgrafiken und Ereignisse
  22. 17 Datenspeicherung und Dateizugriff
    1. 17.1 Suchstrings
      1. 17.1.1 Den Suchstring auslesen
      2. 17.1.2 Leer- und Sonderzeichen verwenden
    2. 17.2 Cookies
      1. 17.2.1 Ein einfaches Cookie
      2. 17.2.2 Haltbarkeit
      3. 17.2.3 Ein Cookie löschen
      4. 17.2.4 Geltungsbereich von Cookies
      5. 17.2.5 Pfadangaben
      6. 17.2.6 Sichere Übertragung
      7. 17.2.7 Beschränkungen
      8. 17.2.8 Sicherheit
    3. 17.3 Web Storage
      1. 17.3.1 Daten schreiben und lesen
      2. 17.3.2 Datentypen
      3. 17.3.3 Der Event-Handler onstorage
      4. 17.3.4 Tools
    4. 17.4 WebDB
      1. 17.4.1 Verfügbarkeit und Zukunft von WebDB
      2. 17.4.2 Structured Query Language (SQL)
      3. 17.4.3 Eine Datenbank öffnen und eine Tabelle erstellen
      4. 17.4.4 Datensätze einfügen
      5. 17.4.5 Abfragen ausführen
    5. 17.5 Zukünftige Datenspeicherung mit IndexedDB
    6. 17.6 Dateizugriff
      1. 17.6.1 Auf Dateien zugreifen
      2. 17.6.2 Dateien auslesen
      3. 17.6.3 Eine Datei mit Drag&Drop einbinden
      4. 17.6.4 Sicherheitsaspekte
    7. 17.7 Weitere Möglichkeiten der Datenspeicherung
      1. 17.7.1 Speichern von Daten auf dem Server
      2. 17.7.2 Flash
      3. 17.7.3 Gears
  23. 18 Ajax
    1. 18.1 Funktionsweise von Ajax
      1. 18.1.1 Desktop-Applikationen und Webapplikationen
      2. 18.1.2 Asynchrone Kommunikation
      3. 18.1.3 Aufbau einer Ajax-Applikation
      4. 18.1.4 Zusammenspiel zwischen Client und Server
      5. 18.1.5 Dienste im Internet nutzen
      6. 18.1.6 Sicherheitsaspekte im Zusammenhang mit Ajax
    2. 18.2 Eine Ajax-Applikation erstellen und testen
      1. 18.2.1 Technische Voraussetzungen
      2. 18.2.2 Lokales Erstellen und Testen
      3. 18.2.3 Hilfsprogramme
    3. 18.3 Eine Ajax-Applikation gestalten
      1. 18.3.1 Visuelles Feedback
      2. 18.3.2 Navigation und Lesezeichen
      3. 18.3.3 Suchmaschinen
    4. 18.4 Das XMLHttpRequest-Objekt
      1. 18.4.1 Ein XMLHttpRequest-Objekt erzeugen
      2. 18.4.2 XMLHttpRequest im Internet Explorer 5 und 6
      3. 18.4.3 Genereller Ansatz zum Erzeugen eines XMLHttpRequest-Objekts
      4. 18.4.4 Eine Anfrage an den Server schicken
      5. 18.4.5 Auf die Antwort des Servers reagieren
      6. 18.4.6 HTTP-Statuscodes
      7. 18.4.7 Formulare mit Ajax
      8. 18.4.8 Alternativen zum XMLHttpRequest-Objekt
    5. 18.5 XML
    6. 18.6 JSON
  24. 19 Web Worker
    1. 19.1 Arten und Verfügbarkeit von Web Workers
    2. 19.2 Single Threaded Environment ohne Web Worker
    3. 19.3 Der Grundaufbau von Web Workers
      1. 19.3.1 Das Worker-Objekt
      2. 19.3.2 Nachrichten
      3. 19.3.3 Zugriffsmöglichkeiten durch den Web Worker
    4. 19.4 Gleichzeitiges Ausführen von Aufgaben
      1. 19.4.1 Das Intervall-Beispiel mit Web Workers
      2. 19.4.2 Ein komplexeres Beispiel
    5. 19.5 Shared Web Worker
      1. 19.5.1 Das SharedWorker-Objekt
      2. 19.5.2 Nachrichten im Zusammenhang mit Shared Web Workers
  25. 20 Webapplikationen mit Offlinemodus
    1. 20.1 Die Manifest-Datei
      1. 20.1.1 Prüfen, ob ein Offlinemodus unterstützt wird
      2. 20.1.2 Aufbau und Einbindung
      3. 20.1.3 Den richtigen MIME-Type verwenden
      4. 20.1.4 Das applicationCache-Objekt
      5. 20.1.5 Dateien aktualisieren
    2. 20.2 Architektur
      1. 20.2.1 Zwischen Online- und Offlinemodus hin- und herschalten
      2. 20.2.2 Synchronisierung
      3. 20.2.3 Manuelle oder automatische Synchronisierung
  26. 21 Mobile Anwendungen
    1. 21.1 Grundsätze des W3C für das mobile Web
      1. 21.1.1 Webseiten für das eine Web gestalten
      2. 21.1.2 Webstandards einhalten
      3. 21.1.3 Bekannte Probleme vermeiden
      4. 21.1.4 Gerätelimits beachten
      5. 21.1.5 Die Navigation optimieren
      6. 21.1.6 Grafiken & Farben prüfen
      7. 21.1.7 Die Größe minimieren
      8. 21.1.8 Am Datentransfer sparen
      9. 21.1.9 Bei Nutzereingaben helfen
      10. 21.1.10 An den mobilen Anwender denken
    2. 21.2 Herausforderungen
      1. 21.2.1 Geräte und Systeme
      2. 21.2.2 Native Applikationen
    3. 21.3 Mobile Webapplikationen
      1. 21.3.1 Webtechnologien auf mobilen Geräten nutzen
      2. 21.3.2 Webapplikationen als native Applikationen verpacken
      3. 21.3.3 Auf besondere Eigenschaften eines Geräts zugreifen
  27. Anhang
    1. A Referenz
      1. A.1 Anchor
      2. A.2 applicationCache
      3. A.3 Area
      4. A.4 Argument
      5. A.5 Array
      6. A.6 Boolean
      7. A.7 Button
      8. A.8 Canvas
      9. A.9 CanvasGradient
      10. A.10 CanvasPattern
      11. A.11 CanvasPixelArray
      12. A.12 Checkbox
      13. A.13 Context
      14. A.14 Database
      15. A.15 Date
      16. A.16 document
      17. A.17 Element
      18. A.18 Error
      19. A.19 Event
      20. A.20 event
      21. A.21 File
      22. A.22 FileReader
      23. A.23 FileUpload
      24. A.24 Form
      25. A.25 Function
      26. A.26 Global
      27. A.27 Hidden
      28. A.28 history
      29. A.29 IFrame
      30. A.30 Image
      31. A.31 ImageData
      32. A.32 Input
      33. A.33 JSON
      34. A.34 Link
      35. A.35 localStorage
      36. A.36 location
      37. A.37 Math
      38. A.38 MessagePort
      39. A.39 MimeType
      40. A.40 navigator
      41. A.41 Number
      42. A.42 Object
      43. A.43 Option
      44. A.44 Password
      45. A.45 Plugin
      46. A.46 Radio
      47. A.47 RegExp
      48. A.48 Reset
      49. A.49 screen
      50. A.50 Select
      51. A.51 sessionStorage
      52. A.52 SharedWorker
      53. A.53 SQLTransaction
      54. A.54 String
      55. A.55 style
      56. A.56 Submit
      57. A.57 SVG
      58. A.58 Text
      59. A.59 Textarea
      60. A.60 TextMetrics
      61. A.61 window
      62. A.62 Worker
      63. A.63 XMLHttpRequest
    2. B Online-Ressourcen
    3. Stichwortverzeichnis