Веб Мастерская | Веб разработка и программирование | ИТ | IT
Без категории · 26 августа 2026 г.
JS:
JS: Коллеги, признавайтесь: писали const user = { name: 'Иван' }; и думали, что объект теперь под замком? 🔒 Спойлер: нет. const охраняет переменную, а не данные. Const запрещает перезаписывать переменную: нельзя сделать user = {}. Но внутри объекта можно менять свойства: user.name = 'Петр'. С массивами то же: const list = [1,2]; list.push(3); — без ошибок. Почему? В JavaScript переменная хранит не объект, а ссылку. const фиксирует ссылку: она всегда указывает на одно и то же значение. Но объект по ссылке — отдельная территория: свойства и элементы можно менять. Что делать на практике? Не путайте иммутабельность и const. Первое — про данные, второе — про переменную. Нужна защита? Object.freeze(): const config = Object.freeze({ theme: 'dark' }); config.theme = 'light'; не сработает, а в strict mode даст ошибку. Но заморозка неглубокая. Для вложенных объектов морозьте рекурсивно или используйте иммутабельные структуры. В массивах выбирайте немутирующие методы: map, filter, slice, spread. Изменили копию — вернули новый результат. В React/Redux иммутабельность помогает не ловить баг «компонент не обновился». Вывод: const — не магический щит. Он защищает от перезаписи переменной, но не от мутации содержимого. На продакшене обычно ломается не const, а привычка менять общий объект в разных местах кода. А вы ловили мутации там, где ждали иммутабельность? Вот так. Идем кодить дальше! 🚀 #JavaScript #JS #const #объекты #массивы #immutable #frontend #webdev #разработка #кодинг #junior #middle #продакшен