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

Ответ

Синхронная рекурсия — это процесс, когда функция вызывает саму себя последовательно, блокируя выполнение кода до завершения всех вложенных вызовов. Каждый следующий вызов ждет завершения предыдущего.

Пример с вычислением факториала:

function factorial(n) {
  if (n === 1) return 1;
  return n * factorial(n - 1); // синхронный рекурсивный вызов
}

console.log(factorial(5)); // 120

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

  • Простая реализация
  • Может привести к переполнению стека (stack overflow) при глубокой рекурсии
  • Блокирует основной поток выполнения
  • Не подходит для асинхронных операций

Для глубокой рекурсии лучше использовать хвостовую рекурсию (если поддерживается) или итеративный подход.