Выбор ответа Junior Модули обновлено

Сколько раз выполнится модуль

Вопрос

a.js и b.js оба делают import './logger.js', а main.js импортирует a.js и b.js. В logger.js на верхнем уровне стоит console.log('logger загружен'). Сколько раз выведется строка?

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

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

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

Коротко

Правильный ответ: Один раз. Модуль выполняется один раз на всё приложение (на один URL или путь), дальше все импорты получают уже готовый экземпляр.

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

  1. Один разправильный ответ
  2. Два раза
  3. Три раза
  4. Ни разу, модуль без экспортов не выполняется

Разбор

Модуль выполняется один раз на всё приложение (на один URL или путь), дальше все импорты получают уже готовый экземпляр. Поэтому модули удобны для синглтонов вроде клиента API. Импорт ради побочного эффекта (import './x.js' без имён) законен и выполняет модуль. Количество импортёров на число выполнений не влияет. В CommonJS так же: после первого require модуль берётся из кеша.

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

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