Получить доступ

Области видимости и замыкания

Основа с Junior

var, let и const, всплытие, лексическое окружение и замыкания.

Замыкание — функция вместе с окружением, в котором она создана: она помнит переменные внешней функции даже после её завершения.

function counter() {
  let n = 0;
  return () => ++n;
}
const next = counter();
next(); next();   // 2 — n живёт в замыкании

Что важно знать

  • var — область видимости функции, всплывает со значением undefined; let/const — блочная область, до объявления — «временная мёртвая зона» (ReferenceError).
  • const запрещает переприсваивание, но не изменение объекта.
  • Классическая задача: цикл for (var i…) с setTimeout печатает одно и то же число; с let у каждой итерации своя переменная.
  • Где применяются замыкания: приватное состояние, фабрики функций, debounce и throttle, обработчики событий, хуки React.
  • Замыкание удерживает переменные в памяти — источник утечек, если держать ссылку на большие объекты в долгоживущем обработчике.

Критерии освоения

Junior ≈ 6 ч

  • Объясняет разницу var, let и const и временную мёртвую зону
  • Объясняет замыкание и пишет на нём счётчик, debounce и throttle

Практика. Реализовать debounce и throttle с тестами и объяснить задачу с setTimeout в цикле на var и let.

Вопросы с собеседований

Документация

← Вся карта «Frontend-разработчик»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем