Основы ESM — import/export, экспорт по умолчанию и именованный
Изучите основы import/export в ESM: что такое модуль, чем отличаются именованный экспорт и экспорт по умолчанию, как импортировать пространство имён, а также кратко сравните ESM с CommonJS
«Основы ESM — import/export, экспорт по умолчанию и именованный» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 3 уроков всего.
Что такое модуль?
Цель: уверенно читать синтаксис модулей.
- Что такое модуль
- Именованные и экспорты по умолчанию
- import * как пространство имён
- Краткое сравнение с CJS

Модуль = файл + локальная область видимости
Модуль — это файл. Его переменные локальны, если не экспортировать их.
// 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());
})();
Именованные экспорты — идея
Именованные экспорты используют фигурные скобки при импорте: import { name }. Из одного файла можно экспортировать несколько элементов.
// 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));
Экспорт по умолчанию — идея
Экспорт по умолчанию импортируется без фигурных скобок: 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 * as ns собирает именованные экспорты в один объект (например, 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));
CJS и ESM: различия и разрешение путей
CJS и ESM (вкратце):
- ESM: синтаксис import/export (статический). Пример: import { x } from "./m.js".
- CJS: require/module.exports (динамический). Пример: const x = require("./m.js").
- В ESM используйте явные расширения файлов в браузере и во многих конфигурациях Node (например, ./file.js).

Тест по именованному импорту и импорту по умолчанию
Быстрая проверка: синтаксис именованного импорта.

Повторение
Повторение: модуль — это файл. Используйте именованные экспорты с фигурными скобками, один экспорт по умолчанию без фигурных скобок и import * для пространства имён. В CJS используется require, а в ESM — import.

Часто задаваемые вопросы
Урок «Основы ESM — import/export, экспорт по умолчанию и именованный» бесплатный?
Да — полный текст урока «Основы ESM — import/export, экспорт по умолчанию и именованный» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс JavaScript Academy, подпишись на CoddyKit PRO. Курс JavaScript Academy содержит 3 уроков всего.
Чему я научусь в уроке «Основы ESM — import/export, экспорт по умолчанию и именованный»?
Изучите основы import/export в ESM: что такое модуль, чем отличаются именованный экспорт и экспорт по умолчанию, как импортировать пространство имён, а также кратко сравните ESM с CommonJS Ты практикуешь JavaScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать JavaScript Academy?
Предыдущий опыт не требуется. JavaScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.
Сколько времени занимает урок «Основы ESM — import/export, экспорт по умолчанию и именованный»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке JavaScript Academy?
Да. Каждый урок JavaScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы ESM — import/export, экспорт по умолчанию и именованный
- Основы CommonJS — require/module.exports и exports
- Разрешение модулей в Node и браузерных сборщиках