Зачем нужны модули?
Современный JS ES6+
Модули нужны, чтобы разбивать код на изолированные переиспользуемые части с явными зависимостями — это упрощает организацию, поддержку и предотвращает конфликты в глобальной области.
Зачем нужны
- Инкапсуляция — каждый модуль имеет свою область видимости; переменные не попадают в глобальную (нет конфликтов имён).
- Переиспользование — экспортируешь функцию/класс и импортируешь где нужно.
- Явные зависимости — из импортов видно, что от чего зависит.
- Организация — код разбит на логические файлы.
- Оптимизация — tree shaking убирает неиспользуемые экспорты.
ES Modules (стандарт)
// utils.js
export function sum(a, b) { return a + b; }
export default class Calculator {}
// app.js
import Calculator, { sum } from './utils.js';export/import— статические (анализируются при сборке).import()— динамический импорт (ленивая загрузка).
Форматы модулей
- ES Modules (ESM) — современный стандарт (
import/export). - CommonJS — Node.js (
require/module.exports). - AMD/UMD — старые браузерные форматы.
До модулей
Использовали глобальные переменные и IIFE для изоляции — модули решили это на уровне языка.
Коротко для собеседования
Модули разбивают код на изолированные переиспользуемые части со своей областью видимости и явными зависимостями (import/export). Дают инкапсуляцию (нет глобальных конфликтов), переиспользование, tree shaking и ленивую загрузку. Стандарт — ES Modules; в Node также CommonJS.