Alte JS-Versionen werden nach Nummern benannt: ES5 (2009) und ES6 (2015).
Ab 2016 sind die Versionen nach Jahr benannt: ECMAScript 2016, 2017, 2018, 2019, ...
In diesem Kapitel werden die neuen Funktionen in ECMAScript 2018 vorgestellt:
Asynchrone Iteration
Versprochen: Endlich
Objektresteigenschaften
Neue RegExp-Funktionen
Gemeinsamer JavaScript-Speicher
ECMAScript 2018 hat asynchrone Iteratoren und Iterables hinzugefügt.
Bei asynchronen Iterables können wir den await
verwenden Schlüsselwort in for/of
-Schleifen.
for await () {}
Die asynchrone JavaScript-Iteration wird seit Januar 2020 in allen modernen Browsern unterstützt:
Chrome 63 | Edge 79 | Firefox 57 | Safari 11 | Opera 50 |
Dec 2017 | Jan 2020 | Nov 2017 | Sep 2017 | Jan 2018 |
ECMAScript 2018 schließt die vollständige Implementierung des Promise-Objekts mit Promise.finally
ab:
let myPromise = new Promise();
myPromise.then();
myPromise.catch();
myPromise.finally();
Promise.finally
wird seit November 2018 in allen modernen Browsern unterstützt:
Chrome 63 | Edge 18 | Firefox 58 | Safari 11.1 | Opera 50 |
Dec 2017 | Nov 2018 | Jan 2018 | Mar 2018 | Jan 2018 |
ECMAScript 2018 hat Rest-Eigenschaften hinzugefügt.
Dadurch können wir ein Objekt zerstören und die Reste auf einem neuen Objekt sammeln:
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x; // 1
y; // 2
z; // { a: 3, b: 4 }
Objektresteigenschaften werden seit Januar 2020 in allen modernen Browsern unterstützt:
Chrome 60 | Edge 79 | Firefox 55 | Safari 11.1 | Opera 47 |
Jul 2017 | Jan 2020 | Aug 2017 | Mar 2018 | Aug 2017 |
ECMAScript 2018 hat 4 neue RegExp-Funktionen hinzugefügt:
Unicode-Eigenschafts-Escapezeichen (\p{...})
Lookbehind-Behauptungen (?<= ) und (?
Benannte Capture-Gruppen
s (dotAll) Flag
Die neuen RegExp-Funktionen werden seit Juni 2020 in allen modernen Browsern unterstützt:
Chrome 64 | Edge 79 | Firefox 78 | Safari 12 | Opera 51 |
Jan 2018 | Jan 2020 | Jun 2020 | Sep 2018 | Feb 2018 |
In JavaScript verwenden Sie die Web Workers API, um Threads zu erstellen.
Worker-Threads werden verwendet, um Code im Hintergrund auszuführen, damit das Hauptprogramm die Ausführung fortsetzen kann.
Arbeitsthreads laufen gleichzeitig mit dem Hauptprogramm. Gleichzeitige Ausführung verschiedener Teile eines Programms kann zeitsparend sein.
Shared Memory ist eine Funktion, die Threads (verschiedenen Teilen eines Programms) ermöglicht auf dieselben Daten im selben Speicher zugreifen und diese aktualisieren.
Anstatt Daten zwischen Threads zu übergeben, können Sie ein SharedArrayBuffer-Objekt übergeben das verweist auf den Speicher, in dem Daten gespeichert sind.
Ein SharedArrayBuffer-Objekt stellt einen binären Rohdatenpuffer fester Länge dar, ähnlich dem ArrayBuffer-Objekt.