Ответ
Синхронная рекурсия — это процесс, когда функция вызывает саму себя последовательно, блокируя выполнение кода до завершения всех вложенных вызовов. Каждый следующий вызов ждет завершения предыдущего.
Пример с вычислением факториала:
function factorial(n) {
if (n === 1) return 1;
return n * factorial(n - 1); // синхронный рекурсивный вызов
}
console.log(factorial(5)); // 120
Особенности:
- Простая реализация
- Может привести к переполнению стека (stack overflow) при глубокой рекурсии
- Блокирует основной поток выполнения
- Не подходит для асинхронных операций
Для глубокой рекурсии лучше использовать хвостовую рекурсию (если поддерживается) или итеративный подход.