Рекурсия — функция вызывает себя на меньшем входе, пока не достигнет базового случая.
Подробности
Удобна для деревьев и divide-and-conquer. Каждый обычный вызов занимает стек: без приближения к базе будет переполнение. Для большой или пользовательской глубины лучше явный стек или цикл.
functionfactorial(n) {
if (!Number.isInteger(n) || n < 0) {
thrownewRangeError('n must be a non-negative integer');
}
if (n === 0) return1;
return n * factorial(n - 1);
}
console.log(factorial(4)); // 24
Итог
Рекурсия = база + шаг к базе. Следите за стеком и валидируйте вход.
Что такое рекурсия и как её применяют в JavaScript? · Sobeso