ECMAScript6-Module – Die Syntax ist final
Kommentare

Der kommende JavaScript-Standard ECMAScript6 wird von vielen gespannt erwartet. Besonders der Wunsch nach einem einheitlichen Modul-System ist in der Community groß. Dieser nimmt nun endlich Form an.

Der kommende JavaScript-Standard ECMAScript6 wird von vielen gespannt erwartet. Besonders der Wunsch nach einem einheitlichen Modul-System ist in der Community groß. Dieser nimmt nun endlich Form an. Bereits Ende Juli 2014 wurden die letzten Details der ECMAScript6-Modul-Syntax in einem Meeting der TC39 fertiggestellt; nun stellte Dr. Axel Rauschmayer die finale Syntax in einer detaillierten Übersicht vor und zeigt, welche Möglichkeiten und Vorteile der native Modul-Standard für die Anwendung hat.

Neuer Modul-Standard verbindet alte Standards

Module waren bisher ein großer Mangel in JavaScript. Da es keinen eingebauten Support für Module gab, wurden zwei Work-Arounds, CommonJS und Asynchronus Module Definition (AMD) entwickelt. Beide Standards sind nicht miteinander kompatibel, daher sollten die ECMAScript6-Module sowohl Nutzer von CommonJS, als auch von AMD zufriedenstellen.

Dieses Ziel scheinen die ECMAScript6-Module zu erreichen: ihre Struktur kann statisch analysiert werden und der Support von Cyclic-Dependencies ist besser. Zudem können mit den Modulen noch komplexere Anwendungen ausgeführt werden, als etwa mit CommonJS.

Zudem besteht der ECMAScript6-Modul-Standard aus zwei Teilen, nämlich der deklarativen Syntax für das Im- und Exportieren und der Programmatic-Loader-API, um zu definieren, wie Module geladen werden.

Features der ES6-Modul-Syntax

Die neue Modul-Syntax in ECMAScript6 bringt verschiedene Features mit sich. Dazu gehört zum Beispiel, dass es zwei verschiedene Export-Arten gib: Named Exports und Default Exports. Dabei sollen, wie die Design-Ziele der ECMAScript6 Modul-Syntax zeigen, Default Exports favorisiert werden.

Zu den weiteren Design-Zielen gehören eine statische Modul-Struktur, der Support von synchronem und asynchronem Laden sowie die Unterstützung von Cyclic-Dependencies zwischen den Modulen.

Zudem bringen die neuen ECMAScript6-Module zahlreiche Verbesserungen für den Import und Export sowie ein ECMAScript6-Module-Loader-API, das dem Nutzer erlaubt, programmatisch mit Modulen und Skripten zu arbeiten und das Laden von Modulen zu konfigurieren.

Vorteile von ECMAScript6- Modulen

Der Vorteil von ECMAScript6-Modulen liegt auf der Hand. Zwar gibt es bereits einige sehr gute Modul-Systeme, allerdings sorgen sie auch für eine Fragmentierung zwischen ihnen, da die dominierenden Standards nicht miteinander kompatibel sind. Zudem verfügen ECMAScript6-Module über Features, die sich nicht über eine Library einbinden lassen. Da ES6 einen einzigen, nativen Modul-Standard bietet, ist keine Universal Module Definition mehr nötig.

Ein weiterer Vorteil ist, dass neue Browser-APIs als Module aufgebaut sind anstatt als globale Variablen oder Properties. Ebenso dienen Objekte wie Math und JSON nicht mehr als Namensraum für Funktionen, da durch die neue Modul-Struktur diese Funktionalität direkt von den Modulen geliefert werden kann.

Dies ist jedoch nur ein kleiner Einblick in die zahlreichen neuen Möglichkeiten, die die ECMAScript6-Module bieten. Eine detaillierte Übersicht verfasste Dr. Axel Rauschmayer in seinem Blogpost, der zur Verdeutlichung auch viele Code-Beispiele enthält. Wer einen generellen Überblick über alle Neuerungen, die es mit ECMAScript6 gibt, sucht, kann zum Beispiel einen Blick auf Sebastian Springers Artikel In Harmonie vereint werfen.

Aufmacherbild: plastic building blocks. von Shutterstock / Urheberrecht: Nenov Brothers Images

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -