Веб Мастерская | Веб разработка и программирование | ИТ | IT
Без категории · 12 августа 2026 г.
JavaScript:
JavaScript: let, const и var: магия областей видимости, из-за которой падают проды Привет, коллеги! На связи Сергей Абрамов и «Веб Мастерская». Сегодня у нас на верстаке JavaScript. Все мы знаем заученное правило: «var — плохо, const — хорошо». Но давайте отложим скучные учебники и разберем, что реально происходит под капотом, и почему незнание этих механизмов стоит разработчикам часов дебаггинга. Темные времена: var Главная беда var — ему абсолютно плевать на блоки {}. Его территория видимости ограничивается только функцией. Классический баг из продакшена: for (var i = 0; i < 3; i++) { setTimeout(() => console.log(i), 100); } Думаете, выведет 0, 1, 2? А вот и нет: 3, 3, 3! Почему? Переменная i общая на всю функцию. Пока таймауты ждали своей очереди, цикл уже открутил свое, оставив i = 3. Итог: логика на фронтенде сломана, тикет горит. Новая эра: let let уважает фигурные скобки (блочную область видимости). Если в коде выше заменить var на let, всё встанет на свои места: выведет 0, 1, 2. Для каждой итерации цикла создается своя, независимая переменная. Чисто, предсказуемо, без сюрпризов. Подводные камни: const Кажется, что const — это железобетонная константа на века. Ан нет! const защищает только от переприсвоения ссылки. Если написать const user = { name: 'Ivan' };, а затем сделать user.name = 'Petr'; — движок JS даже не моргнет. Объекты и массивы мутируют свободно! Запрещено только одно: написать user = {}. Нужна настоящая заморозка данных? Придется доставать Object.freeze(). Правило из мастерской (берите в работу): Слово var забываем как страшный сон (если только вам не платят за поддержку легаси из 2010 года). Наш выбор по умолчанию — const. Это страхует от случайных перезаписей и делает код кристально чистым для коллег на код-ревью. let используем строго по назначению: счетчики, аккумуляторы данных и переменные, которые реально должны меняться. Понимание областей видимости — это не теория для душных собеседований. Это ваши крепкие нервы и стабильно работающий код. А вам часто попадаются хитрые баги из-за var в чужом коде? Делитесь в комментариях! 👇 Вот так. Идем кодить дальше! 🚀 #вебразработка #webdev #webdevelopment #frontend #backend #fullstack #созданиесайтов #php #js #html #css #mysql #seo #сео #ВебМастерская #СтудияАбрамова #АбрамовВеб