> Что такое генераторы в JavaScript и для чего они используются (JavaScript)
Уровень: junior · Роль: frontend · Категория: Технические вопросы
Компании: ООО Премиум ИТ Солюшен
Стек: JavaScript
> Пример ответа
Генераторы - это специальный тип функций в JavaScript, которые могут приостанавливать своё выполнение и возобновлять его позже, сохраняя контекст. Они объявляются с помощью function* и используют ключевое слово yield для возврата промежуточных значений.
Основное назначение генераторов - работа с последовательностями данных, которые не помещаются в память целиком, или с асинхронными потоками. Например, генератор может выдавать бесконечную последовательность чисел Фибоначчи по запросу:
JAVASCRIPTfunction* fibonacci() {let a = 0, b = 1;while (true) {yield a;[a, b] = [b, a + b];}}const gen = fibonacci();console.log(gen.next().value); // 0console.log(gen.next().value); // 1console.log(gen.next().value); // 1console.log(gen.next().value); // 2
Генераторы также широко применяются для:
-
Ленивых вычислений - данные генерируются только когда они нужны.
-
Управления асинхронным кодом - до появления
async/awaitгенераторы использовались с промисами для написания асинхронного кода в синхронном стиле (например, библиотекаco). -
Итерации по сложным структурам - можно создать собственный итератор, реализовав
[Symbol.iterator]через генератор.
Важно помнить, что генератор возвращает объект-итератор с методами next(), return() и throw(), что даёт гибкий контроль над выполнением
> Похожие задачи по frontend
Вернёт ли метод map в JavaScript новый массив с новыми объектами или с теми же старыми объектами при добавлении свойства к объектам?
В чем разница XML и JSON
Попадем ли в catch при ошибке в асинхронном вызове внутри try в JavaScript
Какие значения являются falsy в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью