Ключевое слово const защищает только переменную, а не содержимое объекта. Оно запрещает переназначить переменную на другой объект, но не запрещает изменять свойства самого объекта. Это разные операции.
Многие путаются, думая, что const делает объект неизменяемым. На самом деле const работает по-другому.
Const защищает переменную, а не объект:
const user = { name: 'Иван' };
user.name = 'Петр'; // Можно — изменяем свойства
user = {}; // Нельзя — ошибка! Нельзя переназначить переменнуюconst obj = { a: 1 };
obj.a = 2; // Изменение — можно
obj.b = 3; // Добавление — можноconst obj = { a: 1 };
obj = { b: 2 }; // Переназначение — нельзя! Ошибкаconst user = { name: 'Иван', age: 25 };
// Все эти операции разрешены
user.name = 'Петр';
user.age = 30;
user.city = 'Москва';
delete user.age;const user = { name: 'Иван' };
// Это вызовет ошибку
user = { name: 'Петр' }; // TypeError!const arr = [1, 2, 3];
arr.push(4); // Можно — изменяем массив
arr = []; // Нельзя — ошибка!const obj = { a: 1 };
// obj всегда указывает на один и тот же объект в памятиconst config = { theme: 'dark' };
// Можно обновлять настройки
config.theme = 'light';
config.lang = 'ru';
// Но нельзя случайно перезаписать весь конфиг
// config = {}; // Это защитит от ошибкиconst api = {
baseUrl: 'https://api.example.com'
};
// Можно добавлять методы
api.getUsers = function() { /* логика */ };
// Но нельзя заменить весь api
// api = {}; // Ошибка!// ❌ Думаем, что объект заморожен
const obj = { a: 1 };
obj.a = 2; // Сработает!
console.log(obj.a); // 2
// ✅ Правильное понимание
console.log(obj.a); // 2 — объект изменился// ❌ Ошибка — нельзя переназначить const
const obj = { a: 1 };
obj = { b: 2 }; // TypeError!
// ✅ Правильный способ изменить содержимое
obj.a = 2; // Изменяем свойстваПонимание работы const помогает писать более предсказуемый код и избегать ошибок с переназначением переменных.
Хотите больше статей для подготовки к собеседованиям? Подписывайтесь на EasyAdvice, добавляйте сайт в закладки и совершенствуйтесь каждый день 💪