Выбор ответа Junior Модули спрашивают часто обновлено
Главное отличие ESM от CommonJS
Вопрос
Какое утверждение об ES-модулях и CommonJS верное?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Импорты ESM статичны и дают живую привязку, а require выполняется во время работы. ESM статичен: структура импортов известна до выполнения, поэтому возможны tree shaking и ранние ошибки на несуществующие экспорты; импорт связан с переменной экспортёра. require это обычный вызов функции во время выполнения, он синхронный,…
Варианты ответа
- ESM работает только в браузере, а CommonJS только в Node.js, смешивать их нельзя
- Импорты ESM статичны и дают живую привязку, а
requireвыполняется во время работыправильный ответ - CommonJS поддерживает tree shaking лучше, потому что
requireможно вызвать где угодно - Разница только в синтаксисе: семантика загрузки и экспорта у них одинаковая
Разбор
ESM статичен: структура импортов известна до выполнения, поэтому возможны tree shaking и ранние ошибки на несуществующие экспорты; импорт связан с переменной экспортёра. require это обычный вызов функции во время выполнения, он синхронный, может быть условным и отдаёт текущий объект module.exports. ESM давно поддерживается в Node, а CommonJS живёт в браузере только через сборщики. Как раз динамичность require мешает tree shaking.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.