ECMAScript 2019

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 ES2019:

Warnung

Diese Eigenschaften sind relativ neu.

Ältere Browser benötigen möglicherweise alternativen Code (Polyfill)

JavaScript-String-Methode trimStart()

ES2019 hat JavaScript String-Methode hinzugefügt trimStart().

trimStart() Die Arbeitsweise des Methods ist ähnlich wie trim() Ähnlich, aber nur Leerzeichen vom Anfang der Zeichenkette entfernen.

Beispiel

let text1 = "     Hello World!     ";
let text2 = text1.trimStart();

Probieren Sie es selbst aus

Seit dem 1. Januar 2020 unterstützen alle modernen Browser JavaScript String trimStart():

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
April 2018 Januar 2020 Juni 2018 September 2018 Mai 2018

JavaScript-String-Methode trimEnd()

ES2019 hat JavaScript hinzugefügt trimEnd() Zeichenkettenmethoden.

trimEnd() Die Arbeitsweise des Methods ist ähnlich wie trim() Ähnlich, aber nur Leerzeichen vom Ende der Zeichenkette entfernen.

Beispiel

let text1 = "     Hello World!     ";
let text2 = text1.trimEnd();

Probieren Sie es selbst aus

Seit Januar 2020 unterstützen alle modernen Browser die JavaScript String trimEnd():

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 61 Safari 12 Opera 50
April 2018 Januar 2020 Juni 2018 September 2018 Mai 2018

JavaScript-Objekt-Methode fromEntries()

ES2019 hat JavaScript hinzugefügt fromEntries() Objekt-Methode.

fromEntries() Die Methode erstellt ein Objekt aus iterablen Schlüssel/Wert-Paaren.

Beispiel

const fruits = [
["apples", 300],
["pears", 900],
["bananas", 500]
];
const myObj = Object.fromEntries(fruits);

Probieren Sie es selbst aus

Seit Januar 2020 unterstützen alle modernen Browser die JavaScript String trimEnd():

Chrome Edge Firefox Safari Opera
Chrome 73 Edge 79 Firefox 63 Safari 12.1 Opera 60
März 2019 Januar 2020 Oktober 2018 März 2019 April 2019

Optionale catch-Bindung

Ab ES2019 kann, wenn nicht erforderlich, der catch-Parameter weggelassen werden:

Beispiel

Vor 2019:

try {
// code
} catch (err) {
// code
}

Nach 2019:

try {
// code
} catch {
// code
}

Seit Januar 2020 unterstützen alle modernen Browser die optionale catch-Bindung:

Chrome Edge Firefox Safari Opera
Chrome 66 Edge 79 Firefox 58 Safari 11.1 Opera 53
April 2018 Januar 2020 Januar 2018 März 2018 Mai 2018

JavaScript-Array-Methode flat()

ES2019 hat JavaScript hinzugefügt flat() Array-Methode.

flat() Die Methode erstellt ein neues Array durch das Ausflachen eingebetteter Arrays.

Beispiel

const myArr = [[1,2],[3,4],[5,6]];
const newArr = myArr.flat();

Probieren Sie es selbst aus

Seit Januar 2020 unterstützen alle modernen Browser die JavaScript Array flat():

Chrome Edge Firefox Safari Opera
Chrome 69 Edge 79 Firefox 62 Safari 12 Opera 56
September 2018 Januar 2020 September 2018 September 2018 September 2018

JavaScript-Array-Methode flatMap()

ES2019 hat JavaScript hinzugefügt flatMap() Array-Methode.

flatMap() Die Methode mappt zunächst alle Elemente des Arrays und erstellt dann ein neues Array durch das Ausflachen des Arrays.

Beispiel

const myArr = [1, 2, 3, 4, 5, 6];
const newArr = myArr.flatMap((x) => x * 2);

Probieren Sie es selbst aus

Stabile Array-Methode sort()

ES2019 Überarbeitungder Array.sort() Methode.

Vor 2019 gestattete die Norm unzuverlässige Sortieralgorithmen, wie z.B. QuickSort.

Nach ES2019 müssen Browser stabile Sortieralgorithmen verwenden:

Wenn nach einem Wert sortiert wird, müssen diese Elemente ihre relative Position zu anderen Elementen mit dem gleichen Wert beibehalten.

Beispiel

const myArr = [
  {name:"X00",price:100 },
  {name:"X01",price:100 },
  {name:"X02",price:100 },
  {name:"X03",price:100 },
  {name:"X04",price:110 },
  {name:"X05",price:110 },
  {name:"X06",price:110 },
  {name:"X07",price:110 }
];

Probieren Sie es selbst aus

Im obigen Beispiel dürfen die Ergebnisse bei der Sortierung nach Preis nicht in anderen relativen Positionen der Namen auftauchen, wie folgt:

X01 100
X03 100
X00 100
X03 100
X05 110
X04 110
X06 110
X07 110

Neu überarbeitete JSON.stringify()

ES2019 Überarbeitungder JSON.stringify() Methode.

Vor 2019 konnte JSON keine mit \ kodierten Zeichen serialisieren.

Beispiel

let text = JSON.stringify("\u26D4");

Probieren Sie es selbst aus

Vor ES2019 würde JSON.stringify() bei Verwendung von UTF-8-Codepunkten (U+D800 bis U+DFFF) beschädigte Unicode-Zeichen zurückgeben, z.B. ���。

Nach dieser Revision können Zeichenfolgen mit UTF-8-Codepunkten sicher in JSON.stringify() umgewandelt und mit JSON.parse() in den ursprünglichen String wiederhergestellt werden。

Trennzeichen

In Stringtexten sind jetzt Zeilen- und Absatztrennzeichen erlaubt (\u2028 und \u2029)。

Vor 2019 wurden diese als Zeilenenden betrachtet und führten zu Fehlerbedingungen:

Beispiel

// Dies ist in ES2019 gültig:
let text = "\u2028";

Probieren Sie es selbst aus

Beachten Sie

Jetzt haben JavaScript und JSON die gleichen Regeln.

Vor ES2019:

text = JSON.parse('"\u2028"') wird zu '' parseiert。

text = '"\u2028"' ergibtGrammatikfehler.

Neu überarbeitete Function toString()

ES2019 ÜberarbeitungFunction toString() Methode.

Die toString()-Methode gibt einen String zurück, der den Quellcode der Funktion darstellt.

Ab 2019 muss toString() die Quellcode des Funktionskörpers einschließlich Kommentare, Leerzeichen und Syntaxdetails zurückgeben.

Bis 2019 hatten verschiedene Browser unterschiedliche Funktionsspezifikationen zurückgegeben (z.B. ohne Kommentare und Leerzeichen). Ab 2019 sollte die Funktion vollständig in der geschriebenen Weise zurückgegeben werden.

Beispiel

function myFunction(p1, p2) {
  return p1 * p2;
}

Probieren Sie es selbst aus