Что такое рекурсия

Ответ

Рекурсия — это когда функция вызывает саму себя, прямо или через другие функции. Главное условие — должен быть базовый случай (условие выхода), иначе будет бесконечный вызов и переполнение стека.

Пример с факториалом:

function factorial(n) {
  if (n === 1) return 1; // базовый случай
  return n * factorial(n - 1); // рекурсивный вызов
}
console.log(factorial(5)); // 120

Особенности:

  • Может быть менее эффективна по памяти, чем итеративный подход
  • Подходит для задач с вложенной структурой (деревья, JSON)
  • В JS есть ограничение на глубину рекурсии (обычно ~10k вызовов)
  • Хвостовую рекурсию можно оптимизировать (TCO)