I denna handledning lär du dig om rekursion i JavaScript med hjälp av exempel.
Rekursion är en process för att ringa sig själv. En funktion som kallar sig själv kallas en rekursiv funktion.
Syntaxen för rekursiv funktion är:
function recurse() ( // function code recurse(); // function code ) recurse();
Här är recurse()
funktionen en rekursiv funktion. Det kallar sig inuti funktionen.

En rekursiv funktion måste ha ett villkor för att sluta ringa sig själv. I annat fall kallas funktionen på obestämd tid.
När villkoret är uppfyllt slutar funktionen att ringa sig själv. Detta kallas ett basvillkor.
För att förhindra oändlig rekursion kan du använda if … annars uttalande (eller liknande tillvägagångssätt) där en gren gör det rekursiva samtalet och den andra inte.
Så det ser generellt ut så här.
function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();
Ett enkelt exempel på en rekursiv funktion skulle vara att räkna ner värdet till 1.
Exempel 1: Skriv ut nummer
// program to count down numbers to 1 function countDown(number) ( // display the number console.log(number); // decrease the number value const newNumber = number - 1; // base case if (newNumber> 0) ( countDown(newNumber); ) ) countDown(4);
Produktion
4 3 2 1
I ovanstående program skickar användaren ett nummer som ett argument när han anropar en funktion.
I varje iteration minskar talvärdet med 1 och funktionen countDown()
anropas tills numret är positivt. Här newNumber> 0
är grundvillkoret.
Detta rekursiva samtal kan förklaras i följande steg:
countDown (4) skriver ut 4 och samtal countDown (3) countDown (3) skriver ut 3 och samtal countDown (2) countDown (2) skriver ut 2 och samtal countDown (1) countDown (1) skriver ut 1 och samtal countDown (0)
När talet når 0 uppfylls basvillkoret och funktionen kallas inte längre.
Exempel 2: Hitta faktor
// program to find the factorial of a number function factorial(x) ( // if number is 0 if (x === 0) ( return 1; ) // if number is positive else ( return x * factorial(x - 1); ) ) const num = 3; // calling factorial() if num is non-negative if (num> 0) ( let result = factorial(num); console.log(`The factorial of $(num) is $(result)`); )
Produktion
Faktorn 3 är 6
När du ringer till funktion factorial()
med ett positivt heltal kommer den rekursivt att ringa sig själv genom att minska antalet.
Denna process fortsätter tills siffran blir 1 . Sedan när antalet når 0 , 1 returneras.

Detta rekursiva samtal kan förklaras i följande steg:
fabrik (3) returnerar 3 * fabrik (2) fabrik (2) returnerar 3 * 2 * fabrik (1) fabrik (1) returnerar 3 * 2 * 1 * faktoria (0) faktoria (0) returnerar 3 * 2 * 1 * 1