ECMAScript 2020
JavaScript-Versionen
Alte JS-Versionen werden numerisch benannt: ES5 (2009) und ES6 (2015).
Seit 2016 werden Versionen nach Jahren benannt: ECMAScript 2016, 2017, 2018, 2019, ...
Neue Funktionen in ES2020:
- BigInt
- String-Methode matchAll()
- Leerwert-Kombinationsoperator (??)
- Optionale Kettungsoperator (?.)
- Logischer AND-Zuweisungsoperator (&&=)
- Logischer OR-Zuweisungsoperator (||=)
- Leerwert-Kombinationszuweisungsoperator (??=)
- Promise.allSettled()
- Dynamische Importe
Warnung
Diese Funktionen sind relativ neu.
Ältere Browser benötigen möglicherweise alternativen Code (Polyfill).
JavaScript-BigInt
JavaScript-BigInt-Variablen werden verwendet, um zu große Ganzzahlwerte zu speichern, die nicht mit normalen JavaScript-Zahlen dargestellt werden können.
JavaScript-Ganzzahlen können höchstens 15 Stellen genau sein.
Ganzzahl-Instanz
let x = 999999999999999; let y = 9999999999999999; // zu groß
BigInt-Instanz
let x = 9999999999999999; let y = 9999999999999999n;
Um BigInt zu erstellen, fügen Sie n
An das Ende eines Ganzzahlwerts anhängen oder BigInt() aufrufen:
Beispiel
let x = 1234567890123456789012345n; let y = BigInt(1234567890123456789012345);
Der JavaScript-Typ von BigInt ist "bigint":
Beispiel
let x = BigInt(999999999999999); let type = typeof x;
Seit September 2020 unterstützen alle modernen Browser BigInt:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 67 | Edge 79 | Firefox 68 | Safari 14 | Opera 54 |
Mai 2018 | Januar 2020 | Juli 2019 | September 2020 | Juni 2018 |
JavaScript-Stringmethode matchAll()
Vor ES2020 gab es keine Stringmethode, die zur Suche nach allen Vorkommen eines Strings in einer Zeichenkette verwendet werden konnte.
Beispiel
const iterator = text.matchAll("Cats");
Wenn der Parameter ein reguläres Ausdruck ist, muss das Flag global gesetzt werden (g
) sonst wird TypeError ausgelöst.
Beispiel
const iterator = text.matchAll(/Cats/g);
Wenn eine nicht-kaschierte Suche durchgeführt werden soll, muss das Flag case-insensitive gesetzt werden (i
)
Beispiel
const iterator = text.matchAll(/Cats/gi);
Hinweis:ES2021 Der Stringmethode replaceAll() wurde hinzugefügt.
Leerwert Kombinierungsoperator (Nullish Coalescing Operator) (?? Operator)
wenn der erste Parameter kein Leerwert ist (null
oder undefined
),dann ??
Der Operator gibt den ersten Parameter zurück.
sonst wird der zweite zurückgegeben.
Beispiel
let name = null; let text = "missing"; let result = name ?? text;
Seit März 2020 unterstützen alle modernen Browser den Nullish Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 72 | Safari 13.1 | Opera 67 |
Februar 2020 | Februar 2020 | Januar 2020 | März 2020 | März 2020 |
Optionale Kettungsoperator (Optional Chaining Operator) (?. Operator)
wenn das Objekt undefined
oder null
dannOptionale KettungsoperatorRückgabe undefined
(statt Fehler auszulösen).
Beispiel
const car = {type:"Fiat", model:"500", color:"white"}; let name = car?.name;
Seit März 2020 unterstützen alle modernen Browser diesen Operator. ?.=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 80 | Edge 80 | Firefox 74 | Safari 13.1 | Opera 67 |
Februar 2020 | Februar 2020 | März 2020 | März 2020 | März 2020 |
logischer AND-Zuweisungsoperator (&&= Operator)
Logischer AND Zuweisungsoperatorwird verwendet, um zwischen zwei Werten zu sein.
Wenn der erste Wert true
wird der zweite Wert zugewiesen.
Logischer AND Zuweisungsoperator-Beispiel
let x = 100; x &&= 5;
Seit September 2020 unterstützen alle modernen Browser dies &&=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
August 2020 | August 2020 | März 2020 | September 2020 | September 2020 |
Logischer OR Zuweisungsoperator (||= Operator)
Logischer OR Zuweisungsoperatorwird verwendet, um zwischen zwei Werten zu sein.
Wenn der erste Wert false
wird der zweite Wert zugewiesen.
Logischer OR Zuweisungsoperator-Beispiel
let x = 10; x ||= 5;
Seit September 2020 unterstützen alle modernen Browser dies ||=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
August 2020 | August 2020 | März 2020 | September 2020 | September 2020 |
Leerwert-Kombinationszuweisungsoperator (??= Operator)
Leerwert-Kombinationszuweisungsoperatorwird zwischen zwei Werten verwendet. (Nullish Coalescing Assignment Operator)
wenn der erste Wert undefined
oder null
wird der zweite Wert zugewiesen.
Beispiel für Leerwert-Kombinationszuweisungsoperator
let x = 10; x ??= 5;
Seit September 2020 unterstützen alle modernen Browser dies ??=
Operator:
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome 85 | Edge 85 | Firefox 79 | Safari 14 | Opera 71 |
August 2020 | August 2020 | März 2020 | September 2020 | September 2020 |