Выбор ответа Middle Модули обновлено
Присваивание импортированной переменной
Вопрос
Что произойдёт при выполнении main.js?
// config.js
export let mode = 'dev';
// main.js
import { mode } from './config.js';
mode = 'prod';
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: TypeError: Assignment to constant variable. Импортированная привязка доступна импортёру только для чтения, даже если в экспортёре это let.
Варианты ответа
modeвconfig.jsстанет'prod'- Изменится только локальная копия в
main.js - TypeError: Assignment to constant variableправильный ответ
- Присваивание молча проигнорируется
Разбор
Импортированная привязка доступна импортёру только для чтения, даже если в экспортёре это let. Попытка присвоить бросает TypeError, как при записи в const. Менять значение может только сам модуль config.js, например через экспортированную функцию setMode. Локальной копии в ESM нет, а молчаливого игнорирования не бывает, потому что модули всегда в строгом режиме.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.