Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: const, reference

Почему можно изменять содержимое объекта, объявленного через const?

Этот вопрос проверяет понимание разницы между неизменяемостью ссылки и изменяемостью содержимого объекта в JavaScript.

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

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

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

В JavaScript важно понимать, что именно делает const и на каком уровне он работает.

Определение

const — это способ объявления переменной, который запрещает изменение ссылки на значение, но не делает само значение неизменяемым, если это объект.

Как это работает

Когда вы объявляете объект через const, происходит следующее:

  • В переменную записывается ссылка на объект в памяти

  • Эта ссылка становится неизменяемой

  • Сам объект по этой ссылке остаётся изменяемым

const user = { name: 'Alex' };

// Разрешено
user.name = 'Bob';
user.age = 30;

// Ошибка
user = { name: 'John' };

Почему так сделано

JavaScript разделяет:

  • примитивы (number, string, boolean)

  • ссылочные типы (object, array, function)

Для объектов изменение свойств не требует изменения ссылки, а значит const этому не мешает.

Как сделать объект действительно неизменяемым

Если требуется запретить изменение содержимого:

  • использовать Object.freeze

  • применять иммутабельные подходы

  • создавать новые объекты вместо изменения существующих

Краткий вывод

const защищает ссылку, а не объект. Для реальной неизменяемости нужно использовать дополнительные механизмы.

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

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

#const

#reference

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