JavaScript – Das Handbuch für die Praxis

JavaScript  –  Das Handbuch für die Praxis
Автор книги: id книги: 2039580     Оценка: 0.0     Голосов: 0     Отзывы, комментарии: 0 2461,05 руб.     (24,64$) Читать книгу Купить и скачать книгу Купить бумажную книгу Электронная книга Жанр: Математика Правообладатель и/или издательство: Bookwire Дата добавления в каталог КнигаЛит: ISBN: 9783960104926 Скачать фрагмент в формате   fb2   fb2.zip Возрастное ограничение: 0+ Оглавление Отрывок из книги

Реклама. ООО «ЛитРес», ИНН: 7719571260.

Описание книги

Seit 25 Jahren das begleitende Grundlagenwerk zu JavaScript Durchgehend überarbeiteter Bestseller in der 7. Auflage Deckt die Version ES2020 inkl. Tools/Extensions & Node.js ab < Vermittelt umfassendes und tiefgehendes JavaScript-Know-how JavaScript ist die Programmiersprache des Webs und der Bestseller «JavaScript: Das Handbuch für die Praxis» seit fast 25 Jahren und über sieben Auflagen ein geschätztes Grundlagenwerk für diese Sprache. Umfassend und detailliert dokumentiert Flanagan die wichtigsten client- und serverseitigen APIs. Die 7. Auflage wurde vollständig aktualisiert und deckt die Version 2020 von JavaScript ab. Freuen Sie sich auf spannende und inspirierende Codebeispiele und neue Kapitel über Klassen, Module, Iteratoren, Generatoren, Promises und async/await. Das Buch wendet sich an JavaScript-Neulinge mit Programmierkenntnissen sowie JavaScript-Programmierende, die ihr Verständnis vertiefen wollen. Die Zeit, die Sie in die Lektüre investieren, wird sich durch eine deutlich gesteigerte Produktivität garantiert rasch auszahlen.

Оглавление

David Flanagan. JavaScript – Das Handbuch für die Praxis

Lob für JavaScript: Das Handbuch für die Praxis, siebte Auflage

JavaScript – Das Handbuch für die Praxis

Inhalt

Vorwort

Konventionen, die in diesem Buch verwendet werden

Beispielcode

O’Reilly Online-Lernen

Danksagungen

KAPITEL 1. Einführung in JavaScript

JavaScript: Namen, Versionen und Modi

1.1JavaScript erkunden

1.2Hello World

1.3Ein Rundgang durch JavaScript

Kommentarsyntax in Codebeispielen

1.4Beispiel: Häufigkeitshistogramme

Beispiel 1-1: Berechnung von Häufigkeitshistogrammen mit JavaScript

1.5Zusammenfassung

KAPITEL 2. Die lexikalische Struktur

2.1Der Text eines JavaScript-Programms

2.2Kommentare

2.3Literale

2.4Identifier und reservierte Wörter

2.4.1Reservierte Wörter

2.5Unicode

2.5.1Unicode-Escape-Sequenzen

2.5.2Unicode-Normalisierung

2.6Optionale Semikola

2.7Zusammenfassung

KAPITEL 3. Typen, Werte und Variablen

3.1Übersicht und Definitionen

3.2Zahlen

3.2.1Ganzzahlliterale

3.2.2Gleitkommaliterale

Trennzeichen in Zahlliteralen

3.2.3Arithmetik in JavaScript

3.2.4Binäre Gleitkomma- und Rundungsfehler

3.2.5Langzahlarithmetik mit BigInt

3.2.6Datum und Uhrzeit

3.3Text

Zeichen, Codepoints und JavaScript-Strings

3.3.1String-Literale

3.3.2Escape-Sequenzen in String-Literalen

3.3.3Mit Strings arbeiten

3.3.4Template-Literale

Getaggte Template-Literale

3.3.5Mustervergleiche

3.4Boolesche Werte

3.5null und undefined

3.6Symbole

3.7Das globale Objekt

3.8Unveränderbare primitive Werte und veränderbare Objektreferenzen

3.9Typumwandlungen

3.9.1Umwandlungen und Gleichheit

3.9.2Explizite Umwandlung

3.9.3Umwandlung von Objekten in primitive Datentypen

Umwandlung von Objekten in boolesche Werte

Umwandlung von Objekten in Strings

Umwandlung von Objekten in Zahlen

Umwandlungen durch einige spezielle Operatoren

Die Methoden toString() und valueOf()

Algorithmen zur Umwandlung von Objekten in primitive Datentypen

3.10Variablendeklaration und -zuweisung

3.10.1Deklarationen mit let und const

Geltungsbereich von Variablen und Konstanten

Wiederholte Deklarationen

Deklarationen und Typen

3.10.2Variablendeklarationen mit var

3.10.3Destrukturierende Zuweisung

Komplexe Destrukturierung verstehen

3.11Zusammenfassung

KAPITEL 4. Ausdrücke und Operatoren

4.1Elementare Ausdrücke

4.2Initialisierungsausdrücke von Objekten und Arrays

4.3Ausdrücke zur Funktionsdefinition

4.4Ausdrücke für den Eigenschaftszugriff

4.4.1Bedingter Zugriff auf Eigenschaften

4.5Aufrufausdrücke

4.5.1Bedingter Aufruf

4.6Ausdrücke zur Objekterstellung

4.7Operatoren im Überblick

4.7.1Anzahl an Operanden

4.7.2Operanden und Ergebnistyp

4.7.3Seiteneffekte von Operatoren

4.7.4Vorrang von Operatoren

4.7.5Operatorassoziativität

4.7.6Reihenfolge der Auswertung

4.8Arithmetische Ausdrücke

4.8.1Der +-Operator

4.8.2Unäre arithmetische Operatoren

4.8.3Bitweise Operatoren

4.9Relationale Ausdrücke

4.9.1Gleichheits- und Ungleichheitsoperatoren

Die Operatoren =, == und ===

Strikte Gleichheit

Gleichheit mit Typumwandlung

4.9.2Vergleichsoperatoren

4.9.3Der in-Operator

4.9.4Der instanceof-Operator

4.10Logische Ausdrücke

4.10.1Logisches UND (&&)

4.10.2Logisches ODER (||)

4.10.3Logisches NICHT (!)

4.11Zuweisungsausdrücke

4.11.1Zuweisung mit Operation

4.12Auswertungsausdrücke

Ist eval() eine Funktion oder ein Operator?

4.12.1eval()

4.12.2Globales eval()

4.12.3eval() im strict-Modus

4.13Weitere Operatoren

4.13.1Der Bedingungsoperator (?:)

4.13.2?? – der Erstdefiniert-Operator

4.13.3Der typeof-Operator

4.13.4Der delete-Operator

4.13.5Der await-Operator

4.13.6Der void-Operator

4.13.7Der Kommaoperator (,)

4.14Zusammenfassung

KAPITEL 5. Anweisungen

5.1Anweisungsausdrücke

5.2Zusammengesetzte und leere Anweisungen

5.3Bedingungen

5.3.1if

5.3.2else if

5.3.3switch

5.4Schleifen

5.4.1while

5.4.2do/while

5.4.3for

5.4.4for/of

for/of mit Objekten

for/of mit Strings

for/of mit Set und Map

Asynchrone Iteration mit for/await

5.4.5for/in

5.5Sprünge

5.5.1Benannte Anweisungen

5.5.2break

5.5.3continue

5.5.4return

5.5.5yield

5.5.6throw

5.5.7try/catch/finally

»Nackte« catch-Klausel

5.6Verschiedene Anweisungen

5.6.1with

5.6.2debugger

5.6.3"use strict"

5.7Deklarationen

5.7.1const, let und var

5.7.2function

5.7.3class

5.7.4import und export

5.8Zusammenfassung

KAPITEL 6. Objekte

6.1Einführung in Objekte

6.2Objekte erstellen

6.2.1Objektliterale

6.2.2Objekte mit dem Schlüsselwort new erstellen

6.2.3Prototypen

6.2.4Object.create()

6.3Eigenschaften abfragen und zuweisen

6.3.1Objekte als assoziative Arrays

6.3.2Vererbung

6.3.3Fehlerquellen beim Eigenschaftszugriff

6.4Eigenschaften löschen

6.5Eigenschaften prüfen

6.6Eigenschaften aufzählen

6.6.1Reihenfolge der Eigenschaftsaufzählung

6.7Objekte erweitern

6.8Objekte serialisieren

6.9Objektmethoden

6.9.1Die toString()-Methode

6.9.2Die toLocaleString()-Methode

6.9.3Die valueOf()-Methode

6.9.4Die toJSON()-Methode

6.10Erweiterte Syntax für Objektliterale

6.10.1Kurzschriftsyntax für Eigenschaften

6.10.2Berechnete Eigenschaftsnamen

6.10.3Symbole als Eigenschaftsnamen

6.10.4Der Spread-Operator

6.10.5Kurzschriftsyntax für Methoden

6.10.6Eigenschafts-Getter und -Setter

6.11Zusammenfassung

KAPITEL 7. Arrays

7.1Arrays erstellen

7.1.1Array-Literale

7.1.2Der Spread-Operator

7.1.3Der Array()-Konstruktor

7.1.4Array.of()

7.1.5Array.from()

7.2Array-Elemente lesen und schreiben

7.3Sparse-Arrays

7.4Array-Länge

7.5Array-Elemente hinzufügen und löschen

7.6Über Arrays iterieren

7.7Mehrdimensionale Arrays

7.8Array-Methoden

7.8.1Array-Iteratormethoden

forEach()

map()

filter()

find() und findIndex()

every() und some()

reduce() und reduceRight()

7.8.2Arrays mit flat() und flatMap() »verflachen«

7.8.3Arrays mit concat() verketten

7.8.4Stacks und Queues mit push(), pop(), shift() und unshift()

7.8.5Subarrays mit slice(), splice(), fill() und copyWithin()

slice()

splice()

fill()

copyWithin()

7.8.6Such- und Sortiermethoden für Arrays

indexOf() und lastIndexOf()

includes()

sort()

reverse()

7.8.7Arrays in Strings umwandeln

7.8.8Statische Array-Funktionen

7.9Arrayartige Objekte

7.10Strings als Arrays

7.11Zusammenfassung

KAPITEL 8. Funktionen

8.1Funktionen definieren

8.1.1Funktionsdeklarationen

8.1.2Funktionsausdrücke

8.1.3Pfeilfunktionen

8.1.4Verschachtelte Funktionen

8.2Funktionen aufrufen

8.2.1Aufruf als Funktion

Bedingungsabhängiger Aufruf

Rekursive Funktionen und der Stack

8.2.2Aufruf als Methode

Methoden verketten

8.2.3Aufruf als Konstruktor

8.2.4Indirekter Aufruf

8.2.5Impliziter Funktionsaufruf

8.3Funktionsargumente und -parameter

8.3.1Optionale Parameter und Standardwerte

8.3.2Restparameter und Argumentlisten mit variabler Länge

8.3.3Das Arguments-Objekt

8.3.4Der Spread-Operator für Funktionsaufrufe

8.3.5Funktionsargumente in Parameter destrukturieren

8.3.6Argumenttypen

8.4Funktionen als Werte

Beispiel 8-1: Funktionen als Daten verwenden

8.4.1Eigene Funktionseigenschaften definieren

8.5Funktionen als Namensräume

8.6Closures

Beispiel 8-2: Methoden für den Zugriff auf private Eigenschaften anhand von Closures

8.7Funktionseigenschaften, -methoden und -konstruktoren

8.7.1Die Eigenschaft length

8.7.2Die Eigenschaft name

8.7.3Die Eigenschaft prototype

8.7.4Die Methoden call() und apply()

8.7.5Die bind()-Methode

8.7.6Die Methode toString()

8.7.7Der Konstruktor Function()

8.8Funktionale Programmierung

8.8.1Arrays mit Funktionen bearbeiten

8.8.2Funktionen höherer Ordnung

8.8.3Teilweise Anwendung von Funktionen

8.8.4Memoisierung

8.9Zusammenfassung

KAPITEL 9. Klassen

9.1Klassen und Prototypen

Beispiel 9-1: Eine einfache JavaScript-Klasse

9.2Klassen und Konstruktoren

Beispiel 9-2: Eine Range-Klasse unter Verwendung eines Konstruktors

Konstruktoren und new.target

9.2.1Konstruktoren, Klassenidentität und instanceof

9.2.2Die constructor-Eigenschaft

9.3Klassen erstellen mit dem Schlüsselwort class

Beispiel 9-3: Erstellung der Range-Klasse unter Verwendung von class

9.3.1Statische Methoden

9.3.2Getter, Setter und andere Methodenformen

9.3.3Öffentliche, private und statische Felder

9.3.4Beispiel: Eine Klasse für komplexe Zahlen

Beispiel 9-4: Complex.js: Eine Klasse für komplexe Zahlen

9.4Existierende Klassen um Methoden erweitern

9.5Subklassen

9.5.1Subklassen und Prototypen

Beispiel 9-5: Span.js: Eine einfache Subklasse von Range

9.5.2Subklassen mit extends und super

Beispiel 9-6: TypedMap.js: Eine Subklasse von Map, die die Typen von Schlüsseln und Werten überprüft

9.5.3Delegation statt Vererbung

Beispiel 9-7: Histogram.js: Eine Set-artige Klasse, implementiert mithilfe von Delegation

9.5.4Klassenhierarchien und abstrakte Klassen

Beispiel 9-8: Sets.js: Eine Hierarchie abstrakter und konkreter Set-Klassen

9.6Zusammenfassung

KAPITEL 10. Module

10.1Module mit Klassen, Objekten und Closures

10.1.1Closure-basierte Modularität automatisieren

10.2Module in Node

10.2.1Node-Exporte

10.2.2Node-Importe

10.2.3Der Node-Modulstil im Web

10.3Module in ES6

10.3.1ES6-Exporte

10.3.2ES6-Importe

10.3.3Werte beim Im- und Export umbenennen

10.3.4Re-Exporte

10.3.5JavaScript-Module und das Web

10.3.6Dynamische Importe mit import()

10.3.7import.meta.url

10.4Zusammenfassung

KAPITEL 11. Die JavaScript-Standardbibliothek

11.1Sets und Maps

11.1.1Die Set-Klasse

11.1.2Die Map-Klasse

11.1.3WeakMap und WeakSet

11.2Typisierte Arrays und binäre Daten

11.2.1Typen typisierter Arrays

11.2.2Typisierte Arrays erstellen

11.2.3Typisierte Arrays verwenden

11.2.4Methoden und Eigenschaften für typisierte Arrays

11.2.5DataView und Byte-Reihenfolge

11.3Mustererkennung mit regulären Ausdrücken

11.3.1Reguläre Ausdrücke definieren

Literale Zeichen

Zeichenklassen

Unicode-Zeichenklassen

Wiederholungen

Nicht gierige Wiederholung

Alternativen, Gruppierung und Referenzen

Benannte Capture-Gruppen

Die Trefferposition angeben

Lookbehind-Zusicherungen

Flags

11.3.2String-Methoden für die Mustererkennung

search()

replace()

match()

matchAll()

split()

11.3.3Die RegExp-Klasse

RegExp-Eigenschaften

test()

exec()

Die Eigenschaft lastIndex und die Wiederverwendung von Regexes

11.4Datum und Uhrzeit

11.4.1Zeitstempel

Hochauflösende Zeitstempel

11.4.2Datumsberechnungen

11.4.3Datumsstrings formatieren und parsen

11.5Fehlerklassen

11.6Serialisierung und Parsing mit JSON

11.6.1Eigene JSON-Erweiterungen

11.7Die Internationalisierungs-API

11.7.1Zahlen formatieren

11.7.2Datum und Uhrzeit formatieren

11.7.3Strings vergleichen

11.8Die Console-API

11.8.1Formatierte Ausgaben auf der Konsole

11.9URL-APIs

11.9.1Veraltete URL-Funktionen

11.10Timer

11.11Zusammenfassung

KAPITEL 12. Iteratoren und Generatoren

12.1Wie Iteratoren funktionieren

12.2Iterierbare Objekte implementieren

Beispiel 12-1: Eine iterierbare, numerische Range-Klasse

12.2.1»Schließen« eines Iterators: die return()-Methode

12.3Generatoren

12.3.1Beispiele für Generatoren

12.3.2yield* und rekursive Generatoren

12.4Erweiterte Generatorfunktionen

12.4.1Der Rückgabewert einer Generatorfunktion

12.4.2Der Wert eines yield-Ausdrucks

12.4.3Die return()- und throw()-Methoden eines Generators

12.4.4Ein abschließender Hinweis zu Generatoren

12.5Zusammenfassung

KAPITEL 13. Asynchrones JavaScript

13.1Asynchrone Programmierung mit Callbacks

13.1.1Timer

13.1.2Events

13.1.3Netzwerkevents

13.1.4Callbacks und Events in Node

13.2Promises

13.2.1Promises verwenden

Fehlerbehandlung mit Promises

Promise-Terminologie

13.2.2Promises verketten

13.2.3Promises lösen

13.2.4Mehr zu Promises und Fehlern

Die Methoden catch() und finally()

Einen Promise-Callback beenden

13.2.5Promises parallel ausführen

13.2.6Promises durchführen

Promises, die auf anderen Promises basieren

Promises, die auf synchronen Werten basieren

Promises von Anfang an

Beispiel 13-1: Eine asynchrone getJSON()-Funktion

13.2.7Aufeinanderfolgende Promises

13.3async und await

13.3.1await-Ausdrücke

13.3.2async-Funktionen

13.3.3Mit await auf mehrere Promises warten

13.3.4Implementierungsdetails

13.4Asynchrone Iteration

13.4.1Die for/await-Schleife

13.4.2Asynchrone Iteratoren

13.4.3Asynchrone Generatoren

13.4.4Asynchrone Iteratoren implementieren

13.5Zusammenfassung

KAPITEL 14. Metaprogrammierung

14.1Eigenschaftsattribute

Beispiel 14-1: Eigenschaften und Attribute von einem Objekt in ein anderes kopieren

14.2Objekte erweitern

14.3Das prototype-Attribut

14.4Wohlbekannte Symbole

14.4.1Symbol.iterator und Symbol.asyncIterator

14.4.2Symbol.hasInstance

14.4.3Symbol.toStringTag

14.4.4Symbol.species

14.4.5Symbol.isConcatSpreadable

14.4.6Symbole für die Mustererkennung

14.4.7Symbol.toPrimitive

14.4.8Symbol.unscopables

14.5Template-Tags

14.6Die Reflect-API

14.7Proxy-Objekte

14.7.1Proxy-Invarianten

14.8Zusammenfassung

KAPITEL 15. JavaScript im Webbrowser

Clientseitiges JavaScript

Legacy-APIs

15.1Grundlagen der Webprogrammierung

15.1.1JavaScript in HTML-<script>-Tags

Module

Angabe des Skripttyps

Wann Skripte ausgeführt werden sollen: async und deferred

Bedarfsabhängiges Laden von Skripten

15.1.2Das Document Object Model

15.1.3Das globale Objekt in Webbrowsern

15.1.4Skripte teilen sich einen Namensraum

15.1.5Ausführung von JavaScript-Programmen

Das clientseitige Threading-Modell

Clientseitiges JavaScript im Zeitverlauf

15.1.6Programmeingaben und -ausgaben

15.1.7Programmfehler

15.1.8Das Websicherheitsmodell

Was JavaScript nicht kann

Die Same-Origin-Policy

Cross-Site-Scripting

15.2Events

15.2.1Eventkategorien

15.2.2Eventhandler registrieren

Eventhandler als Eigenschaften setzen

Eventhandler als Attribute setzen

addEventListener()

15.2.3Eventhandler aufrufen

Das Argument eines Eventhandler-Aufrufs

Kontext eines Eventhandlers

Rückgabewert eines Eventhandlers

Aufrufreihenfolge

15.2.4Ausbreitung von Events

15.2.5Events abbrechen

15.2.6Benutzerdefinierte Events auslösen

15.3Dokumente skripten

15.3.1Dokumentelemente auswählen

Auswahl von Elementen mit CSS-Selektoren

Andere Methoden zur Elementauswahl

Vorausgewählte Elemente

15.3.2Durchlaufen der Dokumentstruktur

Dokumente als Elementbäume

15.3.3Attribute

HTML-Attribute als Element-Eigenschaften

Das Attribut class

data-Attribute

15.3.4Inhalt von Elementen

Elementinhalt als HTML

Elementinhalt als Klartext

Text in <script>-Elementen

15.3.5Knoten erstellen, einfügen und löschen

15.3.6Beispiel: Erstellen eines Inhaltsverzeichnisses

Beispiel 15-1: Generieren eines Inhaltsverzeichnisses mithilfe der DOM-API

15.4CSS skripten

15.4.1CSS-Klassen

15.4.2Inline-Stile

Namenskonventionen: CSS-Eigenschaften in JavaScript

15.4.3Berechnete Stile

15.4.4Stylesheets skripten

15.4.5CSS-Animationen und -Events

15.5Dokumentgeometrie und Scrolling

15.5.1Dokument- und Viewport-Koordinaten

CSS-Pixel

15.5.2Die Geometrie eines Elements abfragen

15.5.3Das Element an einem gegebenen Punkt bestimmen

15.5.4Scrolling

15.5.5Größe des Viewports und Inhalts sowie Bildlaufposition

15.6Webkomponenten

15.6.1Verwendung von Webkomponenten

DocumentFragment-Knoten

15.6.2HTML-Templates

15.6.3Benutzerdefinierte Elemente

Beispiel 15-2: Ein benutzerdefiniertes Element <inline-circle>

15.6.4Shadow DOM

Kapselung im Shadow DOM

Shadow-DOM-Slots und Kindelemente des normalen DOM

Shadow-DOM-API

15.6.5Beispiel: Eine <search-box>-Webkomponente

Beispiel 15-3: Implementierung einer Webkomponente

15.7SVG: Scalable Vector Graphics

15.7.1SVG in HTML

15.7.2SVG skripten

15.7.3SVG-Bilder mit JavaScript erstellen

Beispiel 15-4: Zeichnen eines Kuchendiagramms mit JavaScript und SVG

15.8Grafiken auf einem <canvas>

3-D-Grafiken auf einem Canvas

15.8.1Pfade und Polygone

Beispiel 15-5: Regelmäßige Polygone mit moveTo(), lineTo() und closePath()

15.8.2Abmessungen und Koordinaten des Canvas

15.8.3Grafikattribute

Linienstile

Farben, Muster und Farbverläufe

Textstile

Schatten

Transluzenz und Compositing

Speichern und Wiederherstellen des Grafikstatus

15.8.4Zeichenoperationen auf dem Canvas

Rechtecke

Kurven

Beispiel 15-6: Einem Pfad Kurven hinzufügen

Text

Bilder

15.8.5Transformationen des Koordinatensystems

Transformationen mathematisch verstehen

Eine Beispieltransformation

Beispiel 15-7: Eine Koch-Schneeflocke mit Transformationen zeichnen

15.8.6Clipping

15.8.7Pixelmanipulation

Beispiel 15-8: Bewegungsunschärfe mit ImageData

15.9Audio-APIs

15.9.1Der Audio()-Konstruktor

15.9.2Die WebAudio-API

15.10Location-Objekt, Navigation und Browserverlauf

15.10.1Neue Dokumente laden

15.10.2Browserverlauf

15.10.3Verlaufsverwaltung mit hashchange-Events

15.10.4Verlaufsverwaltung mit pushState()

Der »Structured Clone«-Algorithmus

Beispiel 15-9: Verlaufsverwaltung mit pushState()

15.11Netzwerkoperationen

15.11.1fetch()

Tschüs XMLHttpRequest!

HTTP-Statuscodes, Response-Header und Netzwerkfehler

Request-Parameter festlegen

Request-Header festlegen

Response-Bodys parsen

Response-Bodys streamen

Beispiel 15-10: Streaming des Response-Bodys eines fetch()-Requests

Request-Methode und -Body angeben

Datei-Upload mit fetch()

Cross-Origin Requests

Abbruch eines Requests

Weitere Request-Optionen

15.11.2Server-Sent Events

Beispiel 15-11: Ein einfacher Chatclient mit EventSource

Beispiel 15-12: Ein Chatserver für Server-Sent Events

15.11.3WebSockets

WebSockets erstellen, verbinden und trennen

Nachrichten über ein WebSocket senden

Nachrichten über ein WebSocket empfangen

Aushandlung des Protokolls

15.12Clientseitige Speicherung

Speicher, Sicherheit und Datenschutz

15.12.1localStorage und sessionStorage

Lebensdauer und Geltungsbereich

storage-Events

15.12.2Cookies

Warum »Cookie«?

Cookies auslesen

Cookie-Attribute: Lebensdauer und Geltungsbereich

Cookie-Limitierungen

Cookies speichern

15.12.3IndexedDB

Beispiel 15-13: Eine IndexedDB-Datenbank mit US-Postleitzahlen

15.13Worker-Threads und Messaging

15.13.1Worker-Objekte

15.13.2Das globale Objekt in Workern

15.13.3Code in einen Worker importieren

Module in Workern

15.13.4Worker-Ausführungsmodell

Fehlerbehandlung in Workern

15.13.5postMessage(), MessagePorts und MessageChannels

15.13.6Cross-Origin-Messaging mit postMessage()

15.14Beispiel: Die Mandelbrot-Menge

Beispiel 15-14: Worker-Code zur Berechnung der Mandelbrot-Menge

Beispiel 15-15: Ein Viewer für die Mandelbrot-Menge

15.15Zusammenfassung und Vorschläge für die weitere Lektüre

15.15.1HTML und CSS

15.15.2Performance

15.15.3Sicherheit

15.15.4WebAssembly

15.15.5Weitere Document- und Window-Eigenschaften

15.15.6Events

15.15.7Progressive Web Apps und Service Worker

15.15.8APIs für mobile Geräte

15.15.9Binär-APIs

15.15.10Medien-APIs

15.15.11Kryptografie und verwandte APIs

KAPITEL 16. Serverseitiges JavaScript mit Node

Node installieren

16.1Grundlagen der Node-Programmierung

16.1.1Ausgaben auf der Konsole

16.1.2Kommandozeilenargumente und Umgebungsvariablen

16.1.3Der Lebenszyklus von Programmen

16.1.4Node-Module

16.1.5Der Node Package Manager

16.2Node ist standardmäßig asynchron

Echter Parallelismus mit Node

16.3Buffer

16.4Events und EventEmitter

16.5Datenströme

16.5.1Pipes

16.5.2Asynchrone Iteratoren

16.5.3In Streams schreiben und mit Rückstau umgehen

16.5.4Streams eventbasiert lesen

Der fließende Modus

Der pausierte Modus

16.6Details zu Prozessen, CPU und Betriebssystem

16.7Mit Dateien arbeiten

16.7.1Pfade, Dateideskriptoren und Dateihandles

16.7.2Dateien lesen

16.7.3Dateien schreiben

Dateimodus-Strings

16.7.4Dateioperationen

16.7.5Metadaten

16.7.6Mit Verzeichnissen arbeiten

16.8HTTP-Clients und -Server

16.9Nicht-HTTP-basierte Netzwerkserver und -clients

16.10Mit Kindprozessen arbeiten

16.10.1execSync() und execFileSync()

Optionen für Kindprozesse

16.10.2Kindprozesse ausführen mit exec() und execFile()

16.10.3spawn()

16.10.4fork()

16.11Worker-Threads

16.11.1Worker erstellen und Nachrichten weitergeben

16.11.2Die Worker-Ausführungsumgebung

16.11.3Kommunikationskanäle und Message-Ports

16.11.4MessagePorts und typisierte Arrays übertragen

16.11.5Typisierte Arrays in mehreren Threads gemeinsam nutzen

16.12Zusammenfassung

KAPITEL 17. JavaScript-Werkzeuge und -Erweiterungen

17.1Linting mit ESLint

17.2JavaScript-Formatierung mit Prettier

17.3Unit-Tests mit Jest

17.4Paketverwaltung mit npm

17.5Code-Bundling

17.6Transpilierung mit Babel

17.7JSX: Markup-Ausdrücke in JavaScript

17.8Typüberprüfung mit Flow

TypeScript oder Flow?

17.8.1Flow installieren und ausführen

17.8.2Typannotationen verwenden

17.8.3Klassentypen

17.8.4Objekttypen

17.8.5Typaliase

17.8.6Array-Typen

17.8.7Weitere parametrisierte Typen

17.8.8Schreibgeschützte Typen

17.8.9Funktionstypen

17.8.10Vereinigungstypen

17.8.11Aufzählungstypen und unterschiedene Vereinigungstypen

17.9Zusammenfassung

Fußnoten. Kapitel 2: Die lexikalische Struktur

Kapitel 3: Typen, Werte und Variablen

Kapitel 5: Anweisungen

Kapitel 6: Objekte

Kapitel 8: Funktionen

Kapitel 9: Klassen

Kapitel 10: Module

Kapitel 11: Die JavaScript-Standardbibliothek

Kapitel 13: Asynchrones JavaScript

Kapitel 14: Metaprogrammierung

Kapitel 15: JavaScript im Webbrowser

Kapitel 16: Serverseitiges JavaScript mit Node

Kapitel 17: JavaScript-Werkzeuge und -Erweiterungen

Index. Symbole

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Über den Autor

Über die Übersetzer

Kolophon

Отрывок из книги

»In diesem Buch erfahren Sie Dinge über JavaScript, von denen Sie bisher nicht einmal geahnt hatten, wie dringend Sie sie wissen wollten. Die Qualität Ihres Codes und Ihre Produktivität werden extrem davon profitieren. Davids Wissen über JavaScript, dessen Feinheiten und typische Fehlerquellen ist verblüffend, und seine Qualitäten sind in diesem wirklich außergewöhnlichen Handbuch überall spürbar.«

– Schalk Neethling, Senior Frontend Engineer bei MDN Web Docs

.....

// zu erstellen.

let p = new Point(1, 1); // Der geometrische Punkt (1,1).

.....

Добавление нового отзыва

Комментарий Поле, отмеченное звёздочкой  — обязательно к заполнению

Отзывы и комментарии читателей

Нет рецензий. Будьте первым, кто напишет рецензию на книгу JavaScript – Das Handbuch für die Praxis
Подняться наверх