Какие знаешь механизмы модулей в JavaScript

«Какие знаешь механизмы модулей в JavaScript» — вопрос из категории JavaScript, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В JavaScript есть несколько механизмов модулей:

  1. CommonJS - используется в Node.js. Синтаксис require() и module.exports:
// module.js
module.exports = { foo: 'bar' };

// app.js
const module = require('./module.js');
  1. ES Modules (ESM) - стандарт ECMAScript. Использует import/export:
// module.js
export const foo = 'bar';

// app.js
import { foo } from './module.js';
  1. AMD (Asynchronous Module Definition) - для браузеров, асинхронная загрузка через define():
define(['dependency'], function(dependency) {
  return { foo: 'bar' };
});
  1. UMD (Universal Module Definition) - универсальный формат, совместимый с CommonJS, AMD и глобальными переменными.

ES Modules сейчас являются стандартом и поддерживаются современными браузерами и Node.js. Они обеспечивают статический анализ зависимостей и лучшее дерево встряхивания (tree-shaking).