Как написано, a = null выбросит TypeError: a объявлена через const. Последующий console.log(b) без перехвата ошибки не выполнится; сам массив и объект останутся неизменными.
Влияние присваивания null на объект‑ссылку
Как написано, a = null выбросит TypeError: a объявлена через const. Последующий console.log(b) без перехвата ошибки не выполнится; сам массив и объект останутся неизменными.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Разберём, что произойдёт с выводом в консоль, если раскомментировать строку console.log(b). Рассмотрим следующий код:
const a = {
a: 'jsdf',
b: 4
};
const b = [a];
a = null;
Обратите внимание, как изменение переменной a влияет (или не влияет) на массив b, в котором хранилась ссылка на объект, и какой результат будет выведен при попытке вывести b.
Ответ
Как написано, a = null выбросит TypeError: a объявлена через const. Последующий console.log(b) без перехвата ошибки не выполнится; сам массив и объект останутся неизменными.
Если заменить const a на let, присваивание null станет допустимым, но массив b продолжит хранить ссылку на прежний объект { a: 'jsdf', b: 4 }. Обнуление одной переменной не уничтожает объект, пока к нему есть другая достижимая ссылка. Для точного ответа важно сначала учесть ошибку const, а не анализировать исходник как будто он использует let.