Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Где на практике используются замыкания?
Замыкания широко используются для хранения состояния, инкапсуляции данных и работы с асинхронным кодом. Они позволяют скрывать переменные от внешнего мира. Часто применяются в обработчиках событий, таймерах и колбэках. Также замыкания лежат в основе многих паттернов проектирования. Практически любой современный JavaScript-код использует их неявно.
Как избежать утечек памяти при использовании замыканий и событийных слушателей?
Чтобы избежать утечек памяти при использовании замыканий, нужно следить за тем, чтобы замыкания не удерживали ненужные ссылки на объекты. Удаление событийных слушателей, когда они больше не нужны, также критично для предотвращения утечек. Для этого можно использовать методы removeEventListener и обернуть функции в локальные контексты, чтобы избежать ненужного хранения ссылок.
Что такое замыкания в JavaScript и почему они важны?
Замыкание — это функция, которая "запоминает" свою область видимости даже после того, как внешняя функция, в которой она была объявлена, завершила выполнение. Замыкания позволяют создавать функции с доступом к переменным из внешней функции, что полезно для работы с приватными данными и сохранения состояния между вызовами функции.
Что такое замыкания в контексте Python?
Замыкание — это функция, которая "запоминает" переменные из своей внешней области видимости, даже если эта область больше недоступна. Это позволяет функции использовать контекст, в котором она была создана.
Что такое замыкания функций в контексте Go?
Замыкание функции — это функция, которая захватывает и использует переменные из окружающего контекста. Эти функции могут сохранять состояние между вызовами.
Всегда ли в замыканиях нужно использовать [weak self]? (Нет, не всегда, только при риске цикла сильных ссылок)
В чём разница между escaping и non-escaping замыканиями?
Что такое замыкания (closures)?
Как избежать утечек памяти при работе с escaping-замыканиями?
Почему замыкания часто становятся источником утечек памяти?
Рейтинг:
2
Сложность:
7
Нет, использовать [weak self] нужно не всегда. Это необходимо только в ситуациях, когда существует риск создания цикла сильных ссылок. Например, когда объект (как контроллер) хранит сильную ссылку на замыкание, а это замыкание захватывает self сильной ссылкой. Если замыкание будет выполнено сразу и не сохранено, цикл не образуется.
Рейтинг:
2
Сложность:
7
Non-escaping замыкания выполняются сразу внутри функции. Escaping замыкания сохраняются и вызываются позже, например, после завершения асинхронной операции. Escaping требует явной аннотации @escaping.
Рейтинг:
2
Сложность:
6
Замыкания — это блоки кода, которые можно передавать и использовать позже. Они могут сохранять ссылки на переменные из окружающего контекста и часто используются в колбэках и обработке событий.
Рейтинг:
2
Сложность:
6
В escaping-замыканиях захват self по умолчанию сильный, что может привести к retain-циклу. Чтобы избежать, используют [weak self] или [unowned self] в capture-list, проверяют self в блоке и корректно обрабатывают его отсутствие.
Рейтинг:
5
Сложность:
8
Вопрос проверяет понимание модели захвата переменных в Swift и умение писать безопасный код с замыканиями.
Рейтинг:
5
Сложность:
6
Рейтинг:
3
Сложность:
8
Рейтинг:
4
Сложность:
5
Рейтинг:
4
Сложность:
6
Рейтинг:
4
Сложность:
7