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

exports = {} в CommonJS

Вопрос

Что вернёт require("./d.cjs")?

// d.cjs
exports = { z: 1 };

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

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

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

Коротко

Правильный ответ: {}. exports это локальная переменная, которая изначально ссылается на module.exports.

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

  1. {}правильный ответ
  2. { z: 1 }
  3. undefined
  4. Ошибку: exports нельзя переприсваивать

Разбор

exports это локальная переменная, которая изначально ссылается на module.exports. Присваивание меняет только переменную, а require возвращает module.exports, то есть исходный пустой объект.

  • { z: 1 } получилось бы с module.exports = { z: 1 }.
  • undefined неверно: module.exports по умолчанию {}.
  • Ошибки нет: это обычная переменная.

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

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

Термины по теме