0Pricing
JavaScript Academy · Lektion

ESM-Grundlagen – import/export, default vs. named

Die Grundlagen von ESM-Import und -Export kennenlernen: Was ein Modul ist, benannte und Default-Exporte, Namespace-Imports sowie ein kurzer Vergleich mit CommonJS

ESM-Grundlagen – import/export, default vs. named ist eine kostenlose JavaScript Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des JavaScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.

Was ist ein Modul?

Ziel: Lesen Sie die Modulsyntax sicher.

  • Was ein Modul ist
  • Benannte und Standard-Exporte
  • import * als Namespace
  • Kurzer Vergleich mit CJS
ESM-Grundlagen – import/export, default vs. named — Illustration 1

Modul = Datei + lokaler Gültigkeitsbereich

Ein Modul ist eine Datei. Seine Variablen sind lokal, sofern Sie sie nicht exportieren.

// A module is just a file with its own scope
// Here we simulate "module scope" by keeping variables local.
(function () {
  const secret = 42;                          // local to this file/scope
  function reveal() { return "value:" + secret; }
  console.log("module-like scope:", typeof secret === "number", reveal());
})();
ESM-Grundlagen – import/export, default vs. named — Illustration 2

Benannte Exporte — Grundidee

Benannte Exporte verwenden beim Import geschweifte Klammern: import { name }. Sie können mehrere Elemente aus einer Datei exportieren.

// Named exports: you export multiple items by name
const exampleNamedExport = [
  "export const PI = 3.14;",
  "export function sum(a, b) { return a + b; }",
  "import { PI, sum } from \\"./math.js\\";"
];

console.log("named export example:");
for (const line of exampleNamedExport) console.log(line);

// Tiny emulation: pretend we imported two named symbols
const PI = 3.14;
function sum(a, b) { return a + b; }
console.log("emulated use:", PI, sum(2, 3));
ESM-Grundlagen – import/export, default vs. named — Illustration 3

Standardexport — Grundidee

Ein Standardexport wird ohne geschweifte Klammern importiert: import name from "path".

// Default export: each module can have at most one default
const exampleDefault = [
  "export default function greet(name) { return \\"Hi \\" + name; }",
  "import greet from \\"./greet.js\\"; // no braces"
];

console.log("default export example:");
for (const line of exampleDefault) console.log(line);

// Emulation of default import usage
function greet(name) { return "Hi " + name; }
console.log("emulated default:", greet("Ayla"));
ESM-Grundlagen – import/export, default vs. named — Illustration 4

Namespace-Import

import * as ns fasst benannte Exporte in einem Objekt zusammen (z. B. math.sum).

// Namespace import collects all named exports under one object
const exampleNamespace = [
  "import * as math from \\"./math.js\\";",
  "console.log(math.PI, math.sum(1, 2));"
];

console.log("namespace import example:");
for (const line of exampleNamespace) console.log(line);

// Emulate a namespace object
const math = { PI: 3.14, sum: function (a, b) { return a + b; } };
console.log("namespace use:", math.PI, math.sum(4, 5));
ESM-Grundlagen – import/export, default vs. named — Illustration 5

CJS-Vergleich und Hinweise zur Auflösung

CJS vs. ESM (Geschmackssache):

  • ESM: Import-/Exportsyntax (statisch). Beispiel: import { x } from "./m.js".
  • CJS: require/module.exports (dynamisch). Beispiel: const x = require("./m.js").
  • Verwenden Sie in ESM im Browser und in vielen Node-Setups explizite Dateiendungen (z. B. ./file.js).
ESM-Grundlagen – import/export, default vs. named — Illustration 6

Quiz zu benannten und Standardimporten

Kurztest: Syntax für benannte Importe.

ESM-Grundlagen – import/export, default vs. named — Illustration 7

Zusammenfassung

Zusammenfassung: Ein Modul ist eine Datei. Verwenden Sie benannte Exporte mit geschweiften Klammern, einen Standardexport ohne geschweifte Klammern und import * für einen Namespace. CJS verwendet require, ESM verwendet import.

ESM-Grundlagen – import/export, default vs. named — Illustration 8

Häufig gestellte Fragen

Ist die Lektion „ESM-Grundlagen – import/export, default vs. named“ kostenlos?

Ja — der vollständige Text von „ESM-Grundlagen – import/export, default vs. named“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des JavaScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „ESM-Grundlagen – import/export, default vs. named“?

Die Grundlagen von ESM-Import und -Export kennenlernen: Was ein Modul ist, benannte und Default-Exporte, Namespace-Imports sowie ein kurzer Vergleich mit CommonJS Du übst JavaScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um JavaScript Academy zu starten?

Keine Vorkenntnisse erforderlich. JavaScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 3.

Wie lange dauert die Lektion „ESM-Grundlagen – import/export, default vs. named“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser JavaScript Academy-Lektion Code schreiben und ausführen?

Ja. Jede JavaScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. ESM-Grundlagen – import/export, default vs. named
  2. CommonJS-Grundlagen – require/module.exports und exports
  3. Modulauflösung in Node und Browser-Bundlern
← Zurück zu JavaScript Academy