Maksimal anropsstabelstørrelse overskredet Feil i JavaScript | Forklart

Maksimal Anropsstabelstorrelse Overskredet Feil I Javascript Forklart



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.