Рекурсивные функции

Их суть состоит в том, что функция вызывает саму себя.
Например факториал числа:

var digit = prompt("Введите число", 4);
function getFactorial(n){

if (n === 1){
return 1;
}
else{

 return  n * getFactorial(n - 1);
}
}
var factorial = getFactorial(digit);
document.write("<h2>Факториал от числа: " + digit + " равен: " + factorial + "</h2>");	

	

Функция getFactorial() возвращает значение 1, если параметр n равен 1, либо возвращает результат опять же функции getFactorial, то в нее передается значение n-1. Например, при передаче числа 4, у нас образуется следующая цепочка вызовов:

var result = 4 * getFactorial(3);
var result = 4 * 3 * getFactorial(2);
var result = 4 * 3 * 2 * getFactorial(1);
var result = 4 * 3 * 2 * 1; // 24

Другой пример - определение чисел Фибоначчи:

	var digit = prompt("Введите число", 4);
	
	function getFibonachi(n)
	{
	if (n == 0){
	return 0;
	}
	if (n == 1){
	return 1;
	}
	else{
	return getFibonachi(n - 1) + getFibonachi(n - 2);
	}
	}
	var result = getFibonachi(digit); //21 
	document.write("<h2>Число Фибаначи от числа : " + digit + " равно: " + result + " </h2>");