Синтаксис JavaScript Справочник JavaScript JSON Коды клавиш События Строгий режим

JavaScript: Рекурсия

Рекурсия – это когда функция в своём теле вызывает саму себя. Функцию, которая вызывает сама себя, называют рекурсивной функцией. Вызов рекурсивной функции, называется рекурсивным вызовом.

В качестве примера, вычислим факториал с использованием рекурсии:

function f(n) {
  if (n === 1) return 1;
  return n * f(n - 1);
}
alert(f(4));

Визуально последовательное выполнение данной функции можно представить так:

рекурсия в JavaScript

Выполнение программы многократно спускается вниз, пока не упрётся в условие выхода из рекурсии. Достигнув конца, она идёт обратно, возвращая результаты сделанных вызовов.

Рекурсивная функция обязательно должна иметь условие завершения, если его не указать, функция будет вызываться до тех пор, пока не будет достигнута максимальная глубина рекурсии, затем будет сгенерировано исключение.

Общее количество вложенных вызовов называют глубиной рекурсии. Максимальная глубина рекурсии в браузерах ограничена 10 000 рекурсивных вызовов.

Любую рекурсию можно заменить циклом. Перепишем вычисление факториала с помощью цикла:

let result = 1;
for (let i = 2; i <= 4; i++) {
  result *= i;
}
console.log(result);   // 24
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011-2016 © puzzleweb.ru

Реклама на сайте | puzinfo@puzzleweb.ru