> Что такое генераторы в JavaScript и для чего они используются (JavaScript)

Уровень: junior · Роль: frontend · Категория: Технические вопросы

Компании: ООО Премиум ИТ Солюшен

Стек: JavaScript

> Пример ответа

Генераторы - это специальный тип функций в JavaScript, которые могут приостанавливать своё выполнение и возобновлять его позже, сохраняя контекст. Они объявляются с помощью function* и используют ключевое слово yield для возврата промежуточных значений.

Основное назначение генераторов - работа с последовательностями данных, которые не помещаются в память целиком, или с асинхронными потоками. Например, генератор может выдавать бесконечную последовательность чисел Фибоначчи по запросу:

JAVASCRIPT
function* fibonacci() {
let a = 0, b = 1;
while (true) {
yield a;
[a, b] = [b, a + b];
}
}
const gen = fibonacci();
console.log(gen.next().value); // 0
console.log(gen.next().value); // 1
console.log(gen.next().value); // 1
console.log(gen.next().value); // 2

Генераторы также широко применяются для:

  • Ленивых вычислений - данные генерируются только когда они нужны.

  • Управления асинхронным кодом - до появления async/await генераторы использовались с промисами для написания асинхронного кода в синхронном стиле (например, библиотека co).

  • Итерации по сложным структурам - можно создать собственный итератор, реализовав [Symbol.iterator] через генератор.

Важно помнить, что генератор возвращает объект-итератор с методами next(), return() и throw(), что даёт гибкий контроль над выполнением

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью