> Можно ли изменять массивы и объекты, объявленные через const в JavaScript? (JavaScript)

Уровень: middle · Роль: frontend · Категория: Технические вопросы

Компании: YADRO, Домклик, IT-One

Стек: JavaScript

> Пример ответа

Да, можно. Ключевое слово const в JavaScript запрещает переприсваивание переменной, но не делает сам объект или массив неизменяемым (immutable).

JAVASCRIPT
const arr = [1, 2, 3];
arr.push(4); // ✅ Работает: [1, 2, 3, 4]
arr[0] = 10; // ✅ Работает: [10, 2, 3, 4]
// arr = [5, 6, 7]; // ❌ Ошибка: Assignment to constant variable
const obj = { name: 'Alice' };
obj.age = 30; // ✅ Работает: { name: 'Alice', age: 30 }
obj.name = 'Bob'; // ✅ Работает: { name: 'Bob', age: 30 }
// obj = {}; // ❌ Ошибка: Assignment to constant variable

const гарантирует, что ссылка на объект или массив не изменится, но содержимое (свойства объекта, элементы массива) остаётся изменяемым. Чтобы сделать объект или массив полностью неизменяемым, нужно использовать Object.freeze() (поверхностно) или библиотеки вроде Immer.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью