JavaScript Academy · Lektion

Det grundlæggende i ESM — import/export, default kontra named

Lær det grundlæggende i ESM-import og -eksport: hvad et modul er, named kontra default exports, namespace imports og en kort sammenligning med CommonJS.

Lektion 1 af 38 trin

Det grundlæggende i ESM — import/export, default kontra named er en gratis JavaScript Academy-lektion på CoddyKit. Dette er lektion 1 af 3. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i JavaScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. JavaScript Academy-kurset indeholder 3 lektioner i alt.

Hvad er et modul?

Mål: Læs moduls syntaks med sikkerhed.

  • Hvad et modul er
  • Navngivne kontra standard-eksporter
  • import * som navneområde
  • Kort sammenligning med CJS
Det grundlæggende i ESM — import/export, default kontra named — illustration 1

Modul = fil + lokalt gyldighedsområde

Et modul er en fil. Dets variabler er lokale, medmindre du exporterer dem.

// 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());
})();
Det grundlæggende i ESM — import/export, default kontra named — illustration 2

Navngivne eksporter – idéen

Navngivne eksporter bruger klammer ved import: import { name }. Du kan eksportere flere elementer fra én fil.

// 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));
Det grundlæggende i ESM — import/export, default kontra named — illustration 3

Standardeksport – idéen

En standardeksport importeres uden klammer: 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"));
Det grundlæggende i ESM — import/export, default kontra named — illustration 4

Import af navneområde

import * as ns samler navngivne eksporter i ét objekt (f.eks. 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));
Det grundlæggende i ESM — import/export, default kontra named — illustration 5

Kontrast mellem CJS og ESM samt bemærkninger om opløsning

CJS kontra ESM (kort sammenligning):

  • ESM: import/export-syntaks (statisk). Eksempel: import { x } from "./m.js".
  • CJS: require/module.exports (dynamisk). Eksempel: const x = require("./m.js").
  • I ESM skal du bruge eksplicitte filendelser i browseren og i mange Node-opsætninger (f.eks. ./file.js).
Det grundlæggende i ESM — import/export, default kontra named — illustration 6

Quiz om navngiven kontra standardimport

Hurtigt tjek: Syntaks for navngiven import.

Det grundlæggende i ESM — import/export, default kontra named — illustration 7

Opsamling

Opsamling: Et modul er en fil. Brug navngivne eksporter med klammer, én standardeksport uden klammer og import * til et navneområde. CJS bruger require, og ESM bruger import.

Det grundlæggende i ESM — import/export, default kontra named — illustration 8
Gratis at komme i gang

Lær JavaScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
59
Lektioner
200

Ofte stillede spørgsmål

Er lektionen “Det grundlæggende i ESM — import/export, default kontra named” gratis?

Ja — alle 3 lektioner i læringssporet JavaScript Academy, inklusive “Det grundlæggende i ESM — import/export, default kontra named”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. JavaScript Academy-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Det grundlæggende i ESM — import/export, default kontra named”?

Lær det grundlæggende i ESM-import og -eksport: hvad et modul er, named kontra default exports, namespace imports og en kort sammenligning med CommonJS. Du øver dig i JavaScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på JavaScript Academy?

Der kræves ingen tidligere erfaring. JavaScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 3.

Hvor lang tid tager lektionen “Det grundlæggende i ESM — import/export, default kontra named”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne JavaScript Academy-lektion?

Ja. Alle JavaScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Det grundlæggende i ESM — import/export, default kontra named
  2. Det grundlæggende i CommonJS — require/module.exports og exports
  3. Modulopløsning i Node og browserbundlere
← Tilbage til JavaScript Academy