Newsletter
Kapitel 11 von 12

JavaScript-ES6-Module: so funktionieren import und export

geprüft am 7 September 2026 · 6 Min.

In diesem Kapitel geht es um Module und Import/Export in JavaScript. Wir sehen uns an, wie du damit deinen Code organisierst und teilst, und wie Daten sicher zwischen verschiedenen Dateien wandern. Konkrete, praktische Beispiele zeigen, wie sich diese Funktionen im eigenen Code einsetzen lassen.

Module und Import/Export gehören zur 2015 eingeführten Spezifikation ECMAScript 6 (ES6). Alle aktuellen Browser unterstützen sie nativ: Ein Transpiler wie Babel oder ein Bundler wie Webpack ist nur noch nötig, um sehr alte Browser zu bedienen oder Dateien zu bündeln.

Was ist ein Modul in JavaScript (ES6)?

Module sind eine Möglichkeit, Code zu strukturieren und zu organisieren, indem man ihn auf mehrere unabhängige Dateien aufteilt. Der Code bleibt auf lange Sicht verständlicher und wartbarer, weil die einzelnen Teile besser lesbar und leichter wiederverwendbar sind.

Das Prinzip der Module und ihre Vorteile

Das Prinzip beruht auf der Anweisung „export“, die bestimmte Teile des Codes von außerhalb des Moduls erreichbar macht. Alles, was der Endnutzer nicht braucht, bleibt verborgen, und nur die relevanten Elemente werden exportiert.

Die Vorteile sind zahlreich. Zunächst vermeidet die Isolierung der einzelnen Codeteile Namenskonflikte, was besonders zählt, wenn ein Team an einem großen Projekt arbeitet. Außerdem lässt sich der Code besser ordnen und strukturieren, aufgeteilt in Dateien, die leichter zu pflegen sind. Und schließlich lässt er sich mühelos wiederverwenden, indem du ihn in andere Projekte importierst.

Ein Modul mit der Anweisung „export“ erstellen

Um in JavaScript ein Modul zu erstellen, setzt du die Anweisung „export“ vor die Elemente, die von außerhalb des Moduls erreichbar sein sollen. Willst du etwa eine Funktion „saluer“ exportieren, die in einer Datei module.js definiert ist, schreibst du:

javascript
export function saluer() {
  console.log("Bonjour !");
}

Genauso lassen sich mehrere Elemente eines Moduls exportieren, indem du die Anweisung „export“ vor jedes davon setzt. Zum Beispiel:

javascript
export const maVariable = 'ma variable';
export function maFonction() {
  console.log('Je suis une fonction');
}
export class MaClasse {
  constructor() {
    console.log('Je suis une classe');
  }
}

Mit der Anweisung „export default“ legst du ein Standardelement deines Moduls fest. Importierst du kein Element ausdrücklich, wird stattdessen das Standardelement importiert. Zum Beispiel:

javascript
export default function maFonctionParDefaut() {
  console.log('Je suis la fonction par défaut');
}
Gut zu wissen

Ein Modul kann nur ein einziges Standardelement haben, mit der Anweisung „export“ dagegen exportierst du so viele Elemente, wie du willst.

Achtung

Eine per Default exportierte Klasse behält ihre statischen Methoden: export default class MonModule { static creer() { … } } wird mit import MonModule from './mon-module.js' importiert und mit MonModule.creer() aufgerufen. Die einzige Grenze von export default: Es kann nur einen pro Modul geben.

Wie importiert man ein Modul in JavaScript (ES6)?

Mit Modulen teilst du deinen Code auf mehrere Dateien auf und organisierst dein Projekt wirkungsvoller. Im vorigen Abschnitt haben wir gesehen, wie sich ein Modul in JavaScript mit der Anweisung export exportieren lässt. Aber wie holst du ein Modul in deinen eigenen Code? Genau darum geht es hier.

Die Anweisung „import“ verwenden

Um ein Modul in JavaScript zu importieren, nimmst du die Anweisung import. Hier ein Beispiel:

javascript
import * as monModule from '/chemin/vers/mon/module';

Diese Syntax importiert alle Elemente des Moduls monModule und legt sie in einem Objekt gleichen Namens ab. Du kannst auch genau angeben, welche Elemente du haben willst, indem du hinter import die Liste der Elemente in geschweiften Klammern schreibst:

javascript
import { maFonction, maVariable } from '/chemin/vers/mon/module';

Benannte Elemente eines Moduls lassen sich beim Import auch umbenennen, mit der Anweisung „import“ und der Syntax „{ nom1 as alias1, nom2 as alias2 }“, so:

javascript
import { nom1 as alias1, nom2 as alias2 } from 'module';
Gut zu wissen

Aliase lohnen sich, wenn die Namen der importierten Elemente zu lang sind oder wenn sie mit anderen Elementen des Projekts kollidieren könnten. Das Umbenennen beim Import hält den Code lesbar und verhindert Namenskonflikte.

Eine Klasse oder eine Funktion, die als export default exportiert wird, importierst du so:

export

javascript
export default class MonModule {
  constructor() {
    console.log('Je suis une classe');
  }
}
javascript
import MonModule from 'module';

Kommen Standardimport und benannter Import aus demselben Modul, gehört der Standardimport nach vorn, so:

javascript
import MonModule, { maFonction } from './monModule';

// Standardimport verwenden
const monModule = new MonModule();

// benannten Import verwenden
maFonction();

Und schließlich gibt es den dynamischen Import mit der Methode „import()“, der ein Modul asynchron lädt. Das hilft, wenn du ein Modul erst dann laden willst, wenn es wirklich gebraucht wird, statt den Browser unnötig zu belasten.

javascript
import('./monModule').then(monModule => {
  // die importierten Elemente verwenden
  monModule.maFonction();
  monModule.maVariable;
});

Wie verwendet man Module im Browser?

Wir haben gesehen, wie sich Module mit der Anweisung „export“ erstellen und exportieren lassen und wie du sie mit der Anweisung „import“ importierst. Diese Anweisungen werden allerdings noch nicht von allen Browsern unterstützt. Um Module trotzdem im Browser zu nutzen, gibt es mehrere Wege, die dieser Abschnitt vorstellt.

Das Attribut „type=module“ in „script“-Tags verwenden

Um Module im Browser zu verwenden, musst du im Tag „script“ deiner JavaScript-Datei das Attribut „type=module“ angeben. Damit weiß der Browser, dass die Datei ein Modul ist und anders behandelt werden muss als ein normales Skript. Hier ein Codebeispiel:

javascript
<script type="module" src="./script.js"></script>

module.js

javascript
export const maVariable = 'ma variable';
export function maFonction() {
  console.log('Je suis une fonction');
}
export class MaClasse {
  constructor() {
    console.log('Je suis une classe');
  }
}

script.js

javascript
import { maVariable, maFonction, MaClasse } from './module.js';

console.log(maVariable); // Gibt 'ma variable' aus
Achtung

Ein type="module"-Skript wird standardmäßig verzögert: Es läuft, sobald das Dokument geparst ist, wie mit dem Attribut defer, also nach den klassischen Skripten der Seite, selbst wenn diese weiter unten stehen. Es wird außerdem nur einmal geladen, auch wenn das Tag wiederholt wird.

Bundler wie Webpack verwenden

Ein anderer Weg, Module im Browser zu laden, ist ein Bundler. Ein Bundler ist ein Werkzeug, das mehrere Module und JavaScript-Dateien zu einer einzigen Datei zusammenfasst, die der Browser leichter lädt. Webpack ist ein verbreiteter Bundler mit vielen fortgeschrittenen Funktionen für die Verwaltung von Modulen. Wenn du Webpack lernen willst, habe ich dazu ein Tutorial geschrieben.

Fazit

Wir haben gesehen, wie du ein Modul mit der Anweisung „export“ erstellst und wie du es mit der Anweisung „import“ importierst. Ebenso haben wir uns Pfade und Umgebung beim Importieren von Modulen angesehen sowie den Einsatz von Standard- und benannten Importen/Exporten. Und zuletzt, wie Module im Browser laufen, mit dem Attribut „type=module“ in den Tags „script“.

Dieses Tutorial hat dir die Grundlagen für den Einstieg in JavaScript gegeben und die Schlüsselkonzepte der Sprache verständlich gemacht. Von hier aus kannst du weiterlernen und dich auf ein Gebiet wie die Webentwicklung spezialisieren. Bleib motiviert und viel Erfolg mit deinen künftigen Projekten!

Newsletter

Neue Tests, Tutorials und Projekte, per E-Mail.

Reproduzierbare Tests, versionierter Code, datierte Ergebnisse. Niemals Spam.