Homepage
Bitte unterstützen Sie dieses Buch: kaufen Sie es (PDF, EPUB, MOBI) oder spenden Sie
(Werbung, bitte nicht blockieren.)

Erkundung von ES2016 und ES2017

Inhaltsverzeichnis

    1. Was Sie über dieses Buch wissen müssen
      1. Unterstützung
    2. Über den Autor
  1. I Hintergrund
    1. 1. Der TC39-Prozess für ECMAScript-Funktionen
      1. 1.1 Wer entwirft ECMAScript?
      2. 1.2 Wie wird ECMAScript entworfen?
        1. 1.2.1 Problem: ECMAScript 2015 (ES6) war ein zu großer Release
        2. 1.2.2 Lösung: der TC39-Prozess
      3. 1.3 Nennen Sie sie nicht ECMAScript 20xx-Funktionen
      4. 1.4 Weiterführende Lektüre
    2. 2. FAQ: ES2016 und ES2017
      1. 2.1 Ist ECMAScript 2016 zu klein?
  2. II ECMAScript 2016
    1. 3. Array.prototype.includes
      1. 3.1 Übersicht
      2. 3.2 Die Array-Methode includes
      3. 3.3 Häufig gestellte Fragen
      4. 3.4 Weiterführende Lektüre
    2. 4. Potenzierungsoperator (**)
      1. 4.1 Übersicht
      2. 4.2 Ein Infix-Operator für Potenzierung
      3. 4.3 Beispiele
      4. 4.4 Präzedenz
      5. 4.5 Weiterführende Lektüre
  3. III ECMAScript 2017
    1. 5. Async-Funktionen
      1. 5.1 Übersicht
        1. 5.1.1 Varianten
        2. 5.1.2 Async-Funktionen geben immer Promises zurück
        3. 5.1.3 Ergebnisse und Fehler asynchroner Berechnungen über await behandeln
      2. 5.2 Async-Funktionen verstehen
        1. 5.2.1 Asynchronen Code über Generatoren schreiben
        2. 5.2.2 Asynchronen Code über Async-Funktionen schreiben
        3. 5.2.3 Async-Funktionen werden synchron gestartet, asynchron abgeglichen
        4. 5.2.4 Zurückgegebene Promises werden nicht verpackt
      3. 5.3 Tipps zur Verwendung von await
        1. 5.3.1 await nicht vergessen
        2. 5.3.2 Sie brauchen kein await, wenn Sie „feuern und vergessen“
        3. 5.3.3 await ist sequenziell, Promise.all() ist parallel
      4. 5.4 Async-Funktionen und Callbacks
        1. 5.4.1 Array.prototype.map()
        2. 5.4.2 Array.prototype.forEach()
      5. 5.5 Tipps zur Verwendung von Async-Funktionen
        1. 5.5.1 Kennen Sie Ihre Promises
        2. 5.5.2 Sofort aufgerufene Async Function Expressions
        3. 5.5.3 Unit-Tests mit Async-Funktionen
        4. 5.5.4 Machen Sie sich keine Sorgen über unbehandelte Ablehnungen
      6. 5.6 Weiterführende Lektüre
    2. 6. Shared Memory und Atomics
      1. 6.1 Parallelität vs. Nebenläufigkeit
        1. 6.1.1 Modelle der Parallelität
      2. 6.2 Eine Geschichte der JS-Parallelität
        1. 6.2.1 Der nächste Schritt: SharedArrayBuffer
      3. 6.3 Shared Array Buffers
        1. 6.3.1 Erstellen und Senden eines Shared Array Buffers
        2. 6.3.2 Empfangen eines Shared Array Buffers
      4. 6.4 Atomics: sicherer Zugriff auf gemeinsam genutzte Daten
        1. 6.4.1 Problem: Optimierungen machen Code über Worker hinweg unvorhersehbar
        2. 6.4.2 Lösung: Atomics
        3. 6.4.3 Problem: zerrissene Werte
      5. 6.5 Shared Array Buffers in Verwendung
        1. 6.5.1 Shared Array Buffers und die Run-to-Completion-Semantik von JavaScript
        2. 6.5.2 Shared Array Buffers und asm.js und WebAssembly
        3. 6.5.3 Teilen von anderen Daten als ganze Zahlen
        4. 6.5.4 Wie viel schneller ist Code, der Shared Array Buffers verwendet?
      6. 6.6 Beispiel
        1. 6.6.1 Verwendung eines gemeinsam genutzten Locks
        2. 6.6.2 Implementierung eines gemeinsam genutzten Locks
        3. 6.6.3 Fazit zum Beispiel
      7. 6.7 Die API für Shared Memory und Atomics
        1. 6.7.1 SharedArrayBuffer
        2. 6.7.2 Atomics
      8. 6.8 FAQ
        1. 6.8.1 Welche Browser unterstützen Shared Array Buffers?
      9. 6.9 Weiterführende Lektüre
    3. 7. Object.entries() und Object.values()
      1. 7.1 Übersicht
        1. 7.1.1 Object.entries()
        2. 7.1.2 Object.values()
      2. 7.2 Object.entries()
        1. 7.2.1 Einrichten von Maps über Object.entries()
        2. 7.2.2 FAQ: Object.entries()
      3. 7.3 Object.values()
    4. 8. Neue String-Methoden: padStart und padEnd
      1. 8.1 Übersicht
      2. 8.2 Warum Strings auffüllen?
      3. 8.3 String.prototype.padStart(maxLength, fillString=' ')
        1. 8.3.1 Eine einfache Implementierung von padStart()
      4. 8.4 String.prototype.padEnd(maxLength, fillString=' ')
      5. 8.5 FAQ: padStart und padEnd
        1. 8.5.1 Warum heißen die Auffüllmethoden nicht padLeft und padRight?
    5. 9. Object.getOwnPropertyDescriptors()
      1. 9.1 Übersicht
      2. 9.2 Object.getOwnPropertyDescriptors()
      3. 9.3 Anwendungsfälle für Object.getOwnPropertyDescriptors()
        1. 9.3.1 Anwendungsfall: Eigenschaften in ein Objekt kopieren
        2. 9.3.2 Anwendungsfall: Objekte klonen
        3. 9.3.3 Anwendungsfall: Plattformübergreifende Objekt-Literale mit beliebigen Prototypen
      4. 9.4 Fallstrick: Kopieren von Methoden, die super verwenden
    6. 10. Nachgestellte Kommas in Funktionsparameterlisten und Aufrufen
      1. 10.1 Übersicht
      2. 10.2 Nachgestellte Kommas in Objekt- und Array-Literalen
      3. 10.3 Feature: Zulassen von nachgestellten Kommas in Parameterdefinitionen und Funktionsaufrufen
© 2016 - 2018 Axel Rauschmayer