- ECMAScript 2025 wurde am 25. Juni 2025 als offizieller Standard verabschiedet und bringt zahlreiche neue Funktionen mit
- Import attributes und JSON-Module verbessern den Import nicht-javanischer Ressourcen
- Iterator helper methods steigern die Effizienz bei der Verarbeitung großer Datenmengen und bei verschiedensten Iterationsaufgaben
- Für zentrale Built-in-Objekte wie Set und RegExp wurden zahlreiche neue Methoden hinzugefügt, was die Nutzbarkeit verbessert
- Unterstützung für 16-Bit-Gleitkommazahlen (float16) erweitert Datenverarbeitung, Performance und Ausdrucksstärke
Offizielle Verabschiedung von ECMAScript 2025
- Am 25. Juni 2025 wurde ECMAScript 2025 auf der 129. Generalversammlung von Ecma International als offizieller Standard verabschiedet
Wichtige neue Funktionen
Import attributes und JSON-Module
- Import attributes sind eine Syntax, mit der sich für nicht-JavaScript-Artefakte (zu importierende Ressourcen) Eigenschaften wie der Typ angeben lassen
- JSON-Module werden erstmals offiziell unterstützt; JSON-Daten lassen sich damit bequem in der Form
import configData from './data.json' with { type: 'json' }; laden
- Auch bei dynamischen Imports (
import()-Aufrufen) lassen sich dieselben Attribute angeben
Iterator helper methods
- Es wurden verschiedene Helper-Methoden eingeführt, die Array-Methoden ähneln, aber speziell auf iterator zugeschnitten sind
- bestehende Methoden wie
filter, map, flatMap, some, every, find, reduce, forEach
- inklusive neuer iterator-spezifischer Methoden wie
drop, take, toArray
- Direkt nutzbar mit allen iterierbaren Objekten wie Set und Map
- Es werden keine Zwischen-Arrays erzeugt; Daten werden nur in dem Umfang sequenziell verarbeitet, wie sie benötigt werden, was besonders für große Datenmengen effektiv ist
Erweiterungen für Set-Methoden
- Methoden für Vereinigung, Schnittmenge, Differenz und symmetrische Differenz wurden hinzugefügt
Set.prototype.union(other), intersection(other), difference(other), symmetricDifference(other)
- Methoden zur Prüfung von Teilmenge/** Obermenge**/** Disjunktheit** werden bereitgestellt
isSubsetOf(other), isSupersetOf(other), isDisjointFrom(other)
Verbesserungen bei regulären Ausdrücken
RegExp.escape()
RegExp.escape() wurde eingeführt, um beliebige Strings automatisch zu maskieren, damit sie sicher in regulären Ausdrücken verwendet werden können
Inline-Flags innerhalb des Musters
- Für einzelne Teilmuster in regulären Ausdrücken können nun individuelle Flags (
i, u usw.) angewendet werden
- Beispiel:
/^x(?i:HELLO)x$/ gleicht nur den Teil HELLO ohne Beachtung der Groß-/Kleinschreibung ab
Unterstützung für Capture-Gruppen mit doppelten Namen
- In verschiedenen Alternativen (Branches) eines regulären Ausdrucks können Capture-Gruppen mit demselben Namen verwendet werden
- Beispiel:
/(?<chars>a+)|(?<chars>b+)/v
Promise.try()
Promise.try() wurde eingeführt, um die gemischte Verarbeitung von synchronem und asynchronem Code in einer einzigen Promise-Kette zu starten
- Bisher war die Behandlung synchroner Ausnahmen umständlich, jetzt ist dies deutlich einfacher möglich
Unterstützung für 16-Bit-Gleitkommazahlen (float16)
- Mit
Math.f16round() ist Rundung auf 16-Bit-Gleitkommazahlen möglich
- Für TypedArray wurde der Typ
Float16Array hinzugefügt
- In
DataView wurden die Methoden getFloat16() und setFloat16() eingeführt
Referenzmaterial und kostenloses Buch
- Das kostenlose Online-Buch „Exploring JavaScript (ES2025 Edition)“ ist verfügbar
- Es erklärt die Geschichte und Entwicklung von JavaScript sowie die neuen ECMAScript-Funktionen im Detail
- Zu den wichtigsten neuen Funktionen bietet es praktische Beispiele und Erläuterungen
1 Kommentare
Im letzten Projekt wusste ich nicht, warum das Laden von JSON nicht funktioniert hat.
Es wurde also ursprünglich gar nicht unterstützt.. krass