ECMASCRIPT 2023
Frontend

Was gibt’s Neues in ECMAScript 2023?

Seit dem bahnbrechenden ECMAscript 2015 (ES6) gibt es jährliche Aktualisierungen des Javascript-Standards, die schrittweise Verbesserungen einführen. ECMAScript 2023 ist noch nicht offiziell festgelegt, aber laut den Notizen vom letzten TC39-Meeting sieht es so aus, als ob die Liste der neuen Funktionen, die zu JavaScript hinzukommen, bereits bekannt ist. Die endgültige Version der ECMAScript-Spezifikation soll Ende Juni veröffentlicht werden. Es werden keine weiteren wesentlichen redaktionellen Änderungen mehr erwartet.

Array find from last – ECMAScript 2023

Der Vorschlag „Array find from last“ von Wenlu Wang fügt den Prototypen der Array- und TypedArray-Objekte die Methoden findLast() und findLastIndex() hinzu. Sie tun dasselbe wie find() und findIndex(), nur in umgekehrter Reihenfolge. Beide Methoden sind nützlich und ermöglichen es uns, temporäre Duplikate, Mutationen und verwirrende Indexsubtraktionen zu umgehen.

const istGerade = (number) => number % 2 === 0;
const numbers = [1, 2, 3, 4];

// von der ersten bis zur letzten Suche
console.log(numbers.find(istGerade));
// 2
console.log(numbers.findIndex(istGerade));
// 1

// von der letzten bis zur ersten Suche
console.log(numbers.findLast(istGerade));
// 4
console.log(numbers.findLastIndex(istGerade));
// 3

Hashbang-Grammatik

Hashbang, auch bekannt als Shebang, ist eine Zeichenfolge am Anfang eines ausführbaren Skripts, die den Interpreter für das auszuführende Programm definiert. Wenn der Programmloader des Unix-Kernels ein JavaScript-Programm ausführt, entfernt der Host den Hashbang, um eine gültige Quelle zu erzeugen, bevor er sie an die Engine weitergibt. Der Vorschlag „Hashbang-Grammatik“ von Bradley Farias standardisiert, wie dies geschieht.

#!/usr/bin/env node
console.log('Hallo Hashbang');

Symbole als WeakMap-Schlüssel

In JavaScript sind Objekte und Symbole eindeutig und können nicht erneut erstellt werden, wodurch sie sich hervorragend als Schlüssel für WeakMaps eignen. In früheren Versionen oder Spezifikationen war es nur erlaubt, Objekte auf diese Weise zu verwenden. Glücklicherweise fügt der Vorschlag „Symbole als WeakMap-Schlüssel“ von Daniel Ehrenberg, Richard Button, Robin Ricard, Leo Balter, Rick Waldron und Caridy Patiño nicht registrierte Symbole zur Liste der erlaubten Schlüssel hinzu.

const weak = new WeakMap();
const key = Symbol("ref");
weak.set(key, "ECMAScript 2023");

console.log(weak.get(key));
// ECMAScript 2023

Ändern des Arrays durch Kopie

Die bereits bestehenden Methoden reverse(), sort() und splice() des Array-Prototyps ändern das Array direkt. Der Vorschlag „Ändern des Arrays durch Kopie“ von Ashley Claymore und Robin Ricard fügt äquivalente Methoden hinzu, die eine neue Kopie des Arrays zurückgeben: toReversed(), toSorted() und toSpliced(). Dieser Vorschlag fügt auch eine Methode with() hinzu, die ein neues Array mit dem Element an der angegebenen Indexposition zurückgibt, das durch den angegebenen Wert ersetzt wurde, um Mutationen an Ort und Stelle unter Verwendung der Indexnotation zu vermeiden.

const original = [1, 2, 3, 4];
const umgekehrt = original.toReversed();

console.log(original);
// [ 1, 2, 3, 4 ]

console.log(umgekehrt);
// [ 4, 3, 2, 1 ]

const original = [1, 3, 2, 4];
const sortiert = original.toSorted();

console.log(original);
// [ 1, 3, 2, 4 ]

console.log(sortiert);
// [ 1, 2, 3, 4 ]

const original = ['A', 'D'];
const spliced = original.toSpliced(1, 0, 'B', 'C');

console.log(original);
// [ 'A', 'D' ]

console.log(spliced);
// [ 'A', 'B', 'C', 'D' ]

const original = [1, 2, 2, 4];
const mitDrei = original.with(2, 3);

console.log(original);
// [ 1, 2, 2, 4 ]

console.log(mitDrei);
// [ 1, 2, 3, 4 ]

Fazit ECMAScript 2023

Mit diesen neuen Funktionen und Verbesserungen wird ECMAScript 2023 voraussichtlich eine noch effizientere und benutzerfreundlichere Version der JavaScript-Sprache bieten. Es ist gut zu sehen, wie die Sprache kontinuierlich weiterentwickelt wird, um den Bedürfnissen der Entwickler gerecht zu werden.

Bitte beachten Sie, dass dies eine Zusammenfassung der neuen Funktionen ist und es möglicherweise weitere Änderungen und Ergänzungen geben kann, bevor die endgültige Version der ECMAScript-Spezifikation veröffentlicht wird. Es lohnt sich, auf dem Laufenden zu bleiben und die offiziellen Veröffentlichungen zu verfolgen, um alle Details und Feinheiten der kommenden Version zu erfahren.