Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: closures, scope, lexical environment, function, JavaScript

Тест 1

Вопрос проверяет понимание концепции замыканий в JavaScript, чтобы оценить, как разработчик управляет областью видимости и состоянием в функциях.

Короткий ответ

Замыкание — это функция, которая запоминает переменные из своей внешней области видимости, даже после того, как та завершила выполнение. Это позволяет создавать приватные переменные и сохранять состояние между вызовами. Например, функция-счётчик может использовать замыкание для хранения текущего значения. Замыкания часто применяются в обработчиках событий и модулях.

Длинный ответ

Замыкание (closure) в JavaScript — это комбинация функции и лексического окружения, в котором эта функция была объявлена. Оно позволяет функции получать доступ к переменным из внешней функции даже после её завершения, что является мощным механизмом для управления состоянием и инкапсуляции.

Как работают замыкания

Когда функция создаётся внутри другой функции, она захватывает (запоминает) ссылку на лексическое окружение родительской функции. Это окружение включает все локальные переменные, параметры и другие данные. Даже если родительская функция завершила выполнение, её локальные переменные остаются доступными для внутренней функции благодаря замыканию.

Примеры использования

Замыкания часто применяются для:

  • Создания приватных переменных, скрытых от внешнего кода.
  • Реализации функций с сохранением состояния, например, счётчиков.
  • Обработки событий, где нужно запомнить контекст.
  • Построения модулей и паттерна "модуль" в JavaScript.

Пример кода

function createCounter() {
  let count = 0; // Приватная переменная, доступная только через замыкание
  return function() {
    count += 1;
    return count;
  };
}

const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
// Переменная count недоступна напрямую извне

В этом примере функция createCounter возвращает внутреннюю функцию, которая имеет доступ к переменной count. Каждый вызов counter() увеличивает count, сохраняя его значение между вызовами благодаря замыканию.

Вывод

Замыкания полезны, когда нужно инкапсулировать данные, сохранить состояние или создать функции с памятью, особенно в асинхронных операциях и обработчиках событий в JavaScript.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#closures

#scope

#lexical environment

#function

#JavaScript

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию