Podstawy ESM — import/export, default a named
Podstawy importu i eksportu ESM: czym jest moduł, eksporty named i default, importy przestrzeni nazw oraz krótkie porównanie z CommonJS
Podstawy ESM — import/export, default a named to bezpłatna lekcja JavaScript Academy na CoddyKit. To lekcja 1 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej JavaScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs JavaScript Academy zawiera 3 lekcji w sumie.
Czym jest moduł?
Cel: Swobodne odczytywanie składni modułów.
- Czym jest moduł
- Eksporty nazwane a eksport domyślny
- import * jako przestrzeń nazw
- Krótkie porównanie z CJS

Moduł = plik + lokalny zakres
Moduł to plik. Jego zmienne są lokalne, chyba że zostaną wyeksportowane za pomocą export.
// 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());
})();
Eksporty nazwane — idea
Eksporty nazwane używają nawiasów klamrowych przy imporcie: import { name }. Z jednego pliku można eksportować wiele elementów.
// 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));
Eksport domyślny — idea
Eksport domyślny jest importowany bez nawiasów klamrowych: 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"));
Import przestrzeni nazw
import * as ns zbiera eksporty nazwane w jednym obiekcie (na przykład 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));
Porównanie CJS i uwagi o rozwiązywaniu ścieżek
CJS vs ESM (w skrócie):
- ESM: składnia import/export (statyczna). Przykład: import { x } from "./m.js".
- CJS: require/module.exports (dynamiczna). Przykład: const x = require("./m.js").
- W ESM należy używać jawnych rozszerzeń plików w przeglądarce i w wielu konfiguracjach Node (na przykład ./file.js).

Quiz: import nazwany a domyślny
Szybkie sprawdzenie: składnia importu nazwanego.

Podsumowanie
Podsumowanie: Moduł to plik. Należy używać eksportów nazwanych z nawiasami klamrowymi, jednego eksportu domyślnego bez nawiasów klamrowych oraz import * dla przestrzeni nazw. CJS używa require, a ESM — import.

Często zadawane pytania
Czy lekcja „Podstawy ESM — import/export, default a named” jest bezpłatna?
Tak — pełny tekst „Podstawy ESM — import/export, default a named” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu JavaScript Academy, przejdź na CoddyKit PRO. Kurs JavaScript Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „Podstawy ESM — import/export, default a named”?
Podstawy importu i eksportu ESM: czym jest moduł, eksporty named i default, importy przestrzeni nazw oraz krótkie porównanie z CommonJS Ćwiczysz JavaScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć JavaScript Academy?
Nie wymagamy żadnego doświadczenia. JavaScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 3.
Ile czasu zajmuje lekcja „Podstawy ESM — import/export, default a named”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji JavaScript Academy?
Tak. Każda lekcja JavaScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Podstawy ESM — import/export, default a named
- Podstawy CommonJS — require/module.exports i exports
- Rozwiązywanie modułów w Node i bundlerach przeglądarkowych