0Pricing
JavaScript Academy · Урок

Основы 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
Основы ESM — import/export, экспорт по умолчанию и именованный — иллюстрация 1

Модуль = файл + локальная область видимости

Модуль — это файл. Его переменные локальны, если не экспортировать их.

// 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 — import/export, экспорт по умолчанию и именованный — иллюстрация 2

Именованные экспорты — идея

Именованные экспорты используют фигурные скобки при импорте: 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));
Основы ESM — import/export, экспорт по умолчанию и именованный — иллюстрация 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"));
Основы ESM — import/export, экспорт по умолчанию и именованный — иллюстрация 4

Импорт пространства имён

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));
Основы ESM — import/export, экспорт по умолчанию и именованный — иллюстрация 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).
Основы ESM — import/export, экспорт по умолчанию и именованный — иллюстрация 6

Тест по именованному импорту и импорту по умолчанию

Быстрая проверка: синтаксис именованного импорта.

Основы ESM — import/export, экспорт по умолчанию и именованный — иллюстрация 7

Повторение

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

Основы ESM — import/export, экспорт по умолчанию и именованный — иллюстрация 8

Часто задаваемые вопросы

Урок «Основы 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 — локальная установка не требуется.

Все уроки этого курса

  1. Основы ESM — import/export, экспорт по умолчанию и именованный
  2. Основы CommonJS — require/module.exports и exports
  3. Разрешение модулей в Node и браузерных сборщиках
← Назад к JavaScript Academy