Среди функций отдельно можно выделить рекурсивные функции. Их суть состоит в том, что функция вызывает саму себя.
Например, рассмотрим функцию, определяющую факториал числа:
function factorial(n){ if (n === 1){ return 1; } else{ return n * factorial(n - 1); } } const result = factorial(4); console.log(result); // 24
Функция factorial()
возвращает значение 1, если параметр n равен 1, либо возвращает результат опять же функции factorial, то в
нее передается значение n-1. Например, при передаче числа 4, у нас образуется следующая цепочка вызовов:
result = 4 * factorial(3); result = 4 * 3 * factorial(2); result = 4 * 3 * 2 * factorial(1); result = 4 * 3 * 2 * 1; // 24
Рассмотрим другой пример - определение чисел Фибоначчи:
function fibonachi(n) { if (n === 0 || n === 1){ return n; } else{ return fibonachi(n - 1) + fibonachi(n - 2); } } const result = fibonachi(8); //21 console.log(result); // 21