Как изменяется объект при работе с его ссылкой в JavaScript

Будет выведен объект { value: 'cde' }. first и second содержат одну ссылку, поэтому изменение через second видно при чтении через first.

Короткий ответ

Что ответить на собеседовании

Будет выведен объект { 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 }; вложенные объекты при этом всё равно оставались бы общими ссылками.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее