Встречается на собеседованиях • сегодня

В чем разница между CommonJS и ESM-модулем

CommonJS (require/module.exports) и ESM (import/export) — это системы модулей в JavaScript.

Ключевые различия:

  1. Синтаксис:
    javascript
    // CommonJS
    const fs = require('fs');
    module.exports = { foo: 'bar' };
    
    // ESM
    import fs from 'fs';
    export const foo = 'bar';
  1. Загрузка:

    • CommonJS — синхронная (подходит для серверного кода).
    • ESM — асинхронная (лучше для браузеров).
  2. Статичность:

    • ESM требует статического импорта (импорты анализируются до выполнения кода).
    • CommonJS разрешает динамический require() в любом месте.
  3. Поддержка:

    • ESM — стандарт ECMAScript, работает в браузерах и Node.js (с .mjs или "type": "module").
    • CommonJS — Node.js по умолчанию (до версии 12).

Пример динамического импорта (ESM):

javascript
const module = await import('./module.mjs');
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы