Ответ
Рекурсия требует базового случая (условия выхода), чтобы избежать бесконечного цикла. Без него функция будет вызывать саму себя до переполнения стека.
Пример с факториалом:
function factorial(n) {
if (n === 0) { // базовый случай
return 1;
}
return n * factorial(n - 1); // рекурсивный вызов
}
Ключевые моменты:
- Должно быть условие прекращения рекурсии
- Каждый вызов должен приближать к базовому случаю
- Рекурсия использует стек вызовов, что может привести к его переполнению при глубокой вложенности