Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Специализация

Python Backend Developer

Java Backend Developer

Node.js Backend Developer

Golang Backend Developer

React Frontend Developer

Посмотреть все

Выберите навыки

React

React

JavaScript

JavaScript

Git

Git

Redux

Redux

Webpack

Webpack

Посмотреть все

Сложность

1-3

4-6

7-8

9-10

Рейтинг вопросов

1

2

3

4

5

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

Вопросы React Frontend Developer


Как замыкание связано с лексическим окружением?

В какой момент формируется замыкание у функции?

Как реализовать инкрементирующую функцию без передачи параметров, используя замыкание?

Почему замыкание над ссылочным типом может приводить к неожиданному поведению?

Как замыкание влияет на значения, захваченные внутри setTimeout?

  • Рейтинг:

    5

  • Сложность:

    6

Замыкание напрямую связано с лексическим окружением функции. Функция в JavaScript запоминает окружение, в котором была объявлена, а не в котором была вызвана. Благодаря этому она может обращаться к переменным внешней функции даже после её завершения. Лексическое окружение определяет, какие переменные доступны функции. Именно оно лежит в основе механизма замыканий.

Подробнее
  • Рейтинг:

    5

  • Сложность:

    8

Замыкание формируется в момент создания функции, а не её вызова. Функция запоминает лексическое окружение, в котором была объявлена. Благодаря этому она имеет доступ к внешним переменным даже после завершения их выполнения. Это базовый механизм языка. Он широко используется в практике.

Подробнее
  • Рейтинг:

    4

  • Сложность:

    5

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

Подробнее
  • Рейтинг:

    5

  • Сложность:

    5

Замыкание запоминает не значение переменной, а ссылку на неё. Если переменная изменяется после создания замыкания, то при вызове функции будет использовано последнее значение. Это часто приводит к неожиданному поведению в циклах с асинхронными операциями, например, при использовании var или при захвате объектов.
Подробнее
  • Рейтинг:

    5

  • Сложность:

    4

Замыкание в JavaScript запоминает ссылку на переменную, а не её значение. В цикле с var переменная одна на все итерации, поэтому все setTimeout увидят последнее значение. С let создаётся новая переменная на каждой итерации, и замыкание захватывает её корректно.
Подробнее