Назад к вопросам
Middle
254
В чем разница между модулями ES и CommonJS?
Ответ от нейросети
sobes.tech AI
ES-модули (ESM) и CommonJS — это два стандарта модульной системы в JavaScript.
Основные отличия:
-
Синтаксис:
- ES-модули используют
importиexport. - CommonJS использует
require()иmodule.exports.
- ES-модули используют
-
Выполнение:
- ES-модули загружаются статически, что позволяет инструментам делать оптимизации (tree shaking).
- CommonJS загружается динамически во время выполнения.
-
Асинхронность:
- ES-модули поддерживают асинхронную загрузку.
- CommonJS — синхронный.
-
Поддержка:
- ES-модули — стандарт в современных браузерах и Node.js.
- CommonJS — традиционный стандарт для Node.js.
Пример ES-модуля:
// math.js
export function sum(a, b) {
return a + b;
}
// main.js
import { sum } from './math.js';
console.log(sum(2, 3));
Пример CommonJS:
// math.js
function sum(a, b) {
return a + b;
}
module.exports = { sum };
// main.js
const { sum } = require('./math');
console.log(sum(2, 3));