Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: reference, assignment, object, variable, memory

Что происходит со ссылкой на объект при переприсваивании переменной?

Проверяет понимание работы с ссылочными типами данных в JavaScript и поведения переменных при переприсваивании.

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

При переприсваивании переменной, которая ранее ссылалась на объект, старая ссылка заменяется новой. Это не изменяет исходный объект, а лишь меняет то, на что указывает переменная. Если на объект больше нет ссылок, он становится кандидатом на сборку мусора.

Длинный ответ

Что происходит со ссылкой на объект при переприсваивании переменной?

В JavaScript объекты хранятся в памяти по ссылке, а не по значению. Когда вы присваиваете объект переменной, переменная хранит не сам объект, а ссылку на область памяти, где объект находится. При переприсваивании переменной новой ссылке (например, другому объекту или примитиву) старая ссылка теряется, но сам объект остается в памяти до тех пор, пока на него есть хотя бы одна ссылка из другой переменной или структуры данных.

Пример кода

let obj1 = { name: 'Alice' };
let obj2 = obj1; // obj2 ссылается на тот же объект

obj1 = { name: 'Bob' }; // obj1 теперь ссылается на новый объект

console.log(obj2.name); // 'Alice' — obj2 все еще указывает на старый объект
console.log(obj1.name); // 'Bob' — obj1 указывает на новый объект

В этом примере после переприсваивания obj1 старый объект { name: 'Alice' } продолжает существовать, потому что на него ссылается obj2. Если бы obj2 также был переприсвоен или удален, объект стал бы недоступным и был бы удален сборщиком мусора.

Где это применяется

Понимание ссылочного поведения критично при работе с мутабельными данными, копировании объектов, передаче аргументов в функции и управлении памятью. Это основа для избежания побочных эффектов и неожиданного изменения данных.

Вывод

Переприсваивание переменной меняет только ее ссылку, не затрагивая исходный объект. Это важно учитывать при проектировании архитектуры приложения, особенно при работе с состоянием и иммутабельными структурами данных.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#reference

#assignment

#object

#variable

#memory

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.