Rekursive funksjoner er funksjoner som kaller en metode innenfor en annen metode. Imidlertid forårsaker uendelig rekursjon en stabelstørrelsesfeil. Stabelstørrelsesfeilen oppstår på grunn av ventende av mange forespørsler. Dette problemet oppstår når du kaller opp selve funksjonen. Ved å vurdere det, forklarer denne artikkelen at den maksimale anropsstabelstørrelsen overskrider feilen i JavaScript. Dessuten er løsningen også gitt for å løse feilen.
Artikkelen tjener oss som følger:
- Maksimal anropsstabelstørrelse overskredet Feil i JavaScript
- Bruker hvis betingelse for å løse den maksimale anropsstabelstørrelsen overskredet feilen
- Bruker for loop for å løse den maksimale anropsstabelstørrelsen overskredet feil.
Maksimal anropsstabelstørrelse overskredet Feil i JavaScript
Feilen over stabelstørrelsen oppstår når brukeren kaller den rekursive funksjonen. Denne typen feil oppstår på grunn av gjentatte påkalling av en metode. De fun_user() brukes som et rekursivt kall inne i funksjonen fun_user() i JavaScript for å generere en feil i konsollvinduet.
Kode
console.log ( 'Maksimal anropsstabelstørrelse overskredet' ) ;
fun_user ( ) ;
funksjon fun_user ( )
{
fun_user ( ) ;
}
I denne koden er 'maksimal anropsstabelstørrelse overskredet feil' genereres ved å kalle en metode «fun_user()» inne i funksjonen.
Koden viser feilen som 'RangeError: Maksimal anropsstabelstørrelse overskredet.'
Det er mange måter å løse denne feilen på, som f.eks for løkke og betingede uttalelser , som kan brukes til å begrense funksjonsanropet.
Løsning 1: Bruke if Condition for å løse den maksimale anropsstabelstørrelsen overskredet feilen
For å løse feilen brukes if-betingelsen for å begrense stabelstørrelsen i JavaScript. For eksempel er koden gitt nedenfor.
Kode
var Jeg = 1 ;fun_user ( Jeg ) ;
funksjon fun_user ( Jeg ) {
hvis ( Jeg < = 10 )
{
console.log ( 'Velkommen til JavaScript' ) ;
Jeg =i+ 1 ;
fun_user ( Jeg ) ;
} }
Beskrivelsen av koden er som følger:
- For det første en variabel 'Jeg' initialiseres med verdien 1.
- Etter det, fun_user() metoden brukes ved å overføre variabelen 'Jeg'.
- I denne funksjonen, hvis betingelse brukes som begrenser iterasjonen til 10 .
- Til slutt, meldingen 'Velkommen til JavaScript' vises ved hjelp av «console.log()» metode.
Produksjon
Løsning 2: Bruk for Loop for å løse feilen for maksimal anropstabelstørrelse overskredet
For å løse feilen brukes en for-løkke for å begrense iterasjonene i JavaScript. For eksempel er koden gitt nedenfor.
Kode
la utgang = 0 ;til ( la jeg = 5 ; Jeg > 0 ; Jeg-- )
{
utgang += legg til ( 1 , 1 ) ;
}
funksjon legge til ( a, b ) {
komme tilbake a + b;
}
console.log ( produksjon ) ;
I denne koden:
- Variabelen 'produksjon' initialiseres med verdien 0.
- Etter det brukes en for-løkke til å utføre fem iterasjoner. I denne sløyfen er legge til() metoden kalles ved å sende verdien 1.
- Metoden legge til() returnerer tillegg av to variabler en og b .
- Til slutt, den Logg() metoden brukes for å vise utdataene i konsollvinduet.
Produksjon
Utgangen kommer tilbake '10' ved å løse feilen for maksimal anropsstabelstørrelse i JavaScript.
Konklusjon
Det uendelige kallet til rekursive funksjoner skjer som 'maksimal anropsstabelstørrelse overskredet feil' i JavaScript. Denne artikkelen forklarer årsakene til å forårsake denne typen feil. Etterpå to løsninger, inkludert 'for loop' og 'betingede uttalelser' brukes til å løse feilen. Derfor er anropsfunksjonene begrenset ved å bruke disse løsningene.