Выбор ответа Junior Модули спрашивают часто обновлено

Главное отличие ESM от CommonJS

Вопрос

Какое утверждение об ES-модулях и CommonJS верное?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Импорты ESM статичны и дают живую привязку, а require выполняется во время работы. ESM статичен: структура импортов известна до выполнения, поэтому возможны tree shaking и ранние ошибки на несуществующие экспорты; импорт связан с переменной экспортёра. require это обычный вызов функции во время выполнения, он синхронный,…

Варианты ответа

  1. ESM работает только в браузере, а CommonJS только в Node.js, смешивать их нельзя
  2. Импорты ESM статичны и дают живую привязку, а require выполняется во время работыправильный ответ
  3. CommonJS поддерживает tree shaking лучше, потому что require можно вызвать где угодно
  4. Разница только в синтаксисе: семантика загрузки и экспорта у них одинаковая

Разбор

ESM статичен: структура импортов известна до выполнения, поэтому возможны tree shaking и ранние ошибки на несуществующие экспорты; импорт связан с переменной экспортёра. require это обычный вызов функции во время выполнения, он синхронный, может быть условным и отдаёт текущий объект module.exports. ESM давно поддерживается в Node, а CommonJS живёт в браузере только через сборщики. Как раз динамичность require мешает tree shaking.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.