Специализация
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 позволяют выполнять генерацию значений с возможностью ожидания завершения асинхронных операций. Они работают с использованием async и yield, что делает их полезными для создания потоков данных, которые поступают постепенно. Это удобно при работе с большими наборами данных или внешними источниками, такими как API, где данные могут приходить частями.
Расскажите о генераторах и итераторах в JavaScript и приведите пример их использования.
Итераторы — это объекты, которые реализуют метод next() и возвращают значение на каждой итерации. Генераторы — это функции, которые создают итераторы с помощью function* и yield. Генераторы позволяют контролировать выполнение кода и возвращать значения по мере необходимости, что упрощает работу с большими или бесконечными наборами данных.
В чем разница между итератором и генератором?
Итератор — это объект, который реализует протокол итерации (__iter__ и __next__). Генератор — это функция, которая возвращает итератор и использует ключевое слово yield для сохранения состояния между вызовами.
Что такое генератор?
Генератор — это функция, которая возвращает значения по одному с помощью ключевого слова yield. Он позволяет экономить память, так как элементы создаются "на лету" по запросу. Генераторы можно использовать для работы с большими данными, где нет необходимости сразу загружать всё в память.
Какой синтаксис создания генераторов?
Генераторы в Python создаются с использованием функции, которая содержит ключевое слово yield. Генератор возвращает элементы по одному, и его выполнение приостанавливается на каждом yield и возобновляется с того места, где оно было приостановлено. Генераторы экономят память, так как данные генерируются по мере необходимости, а не сохраняются в памяти.
Как создать генератор с помощью yield?
Как работают генераторы в JS?
Чем list comprehension отличается от генераторов?
Как работают генераторы? Почему они экономят память по сравнению с итераторами?
Какая связь между async/await и генераторами?
Рейтинг:
2
Сложность:
7
Генератор создаётся функцией с ключевым словом yield вместо return. При вызове такой функции возвращается генераторный объект, который при итерации последовательно выполняет тело функции до следующего yield, сохраняя состояние между вызовами.
Рейтинг:
3
Сложность:
6
Генераторы — это функции, которые можно приостанавливать и возобновлять. Они возвращают специальный объект (Generator), управляемый через yield. Полезны для работы с последовательностями или асинхронными операциями.
Рейтинг:
2
Сложность:
8
List comprehension — это компактный способ создания списков с помощью одного выражения. Отличается от генераторов тем, что:
Сразу создаёт весь список в памяти.
Генераторы лениво вычисляют элементы по одному (экономят память).
Рейтинг:
1
Сложность:
7
Генераторы — это функции с yield, которые возвращают элементы по одному. Они экономят память, так как не хранят все элементы сразу, а вычисляют их при необходимости.
Рейтинг:
2
Сложность:
6
Ключевая связь в том, что и генераторы, и асинхронные функции позволяют приостанавливать выполнение кода и later возобновлять его. Генераторы используют ключевое слово yield для паузы и возврата значения. Механизм async/await был во многом вдохновлен этой идеей: await приостанавливает выполнение асинхронной функции, подобно тому как yield приостанавливает генератор. Изначально асинхронность в Python (библиотека asyncio) использовала генераторы для реализации корутин.
Рейтинг:
1
Сложность:
8
Рейтинг:
3
Сложность:
7
Рейтинг:
3
Сложность:
5
Рейтинг:
2
Сложность:
3
Рейтинг:
2
Сложность:
7