Будет выведен объект { value: 'cde' }. first и second содержат одну ссылку, поэтому изменение через second видно при чтении через first.
Как изменяется объект при работе с его ссылкой в JavaScript
Будет выведен объект { value: 'cde' }. first и second содержат одну ссылку, поэтому изменение через second видно при чтении через first.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой объект будет выведен в консоль после выполнения следующего кода:
const first = { value: "abc" };
const second = first;
second.value = "cde";
console.log(first);
Ответ
Будет выведен объект { value: 'cde' }. first и second содержат одну ссылку, поэтому изменение через second видно при чтении через first.
Присваивание second = first не копирует поля и не создаёт новый объект. const запрещает изменить связывание переменной, но разрешает мутацию доступного объекта. Для независимой поверхностной копии можно использовать const second = { ...first }; вложенные объекты при этом всё равно оставались бы общими ссылками.