> Можно ли изменять массивы и объекты, объявленные через const в JavaScript? (JavaScript)
Уровень: middle · Роль: frontend · Категория: Технические вопросы
Компании: YADRO, Домклик, IT-One
Стек: JavaScript
> Пример ответа
Да, можно. Ключевое слово const в JavaScript запрещает переприсваивание переменной, но не делает сам объект или массив неизменяемым (immutable).
JAVASCRIPTconst 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 variableconst 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.
> Похожие задачи по frontend
В чем разница между Promise.all, Promise.any и Promise.race в JavaScript
Каков порядок выполнения задач (task) и микротасков (microtask) в JavaScript
В чем разница между Promise.all и Promise.allSettled в JavaScript?
Как сравнить массивы аргументов для кеширования в функции memo в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью