Maksimal opkaldsstabelstørrelse overskredet Fejl i JavaScript | Forklaret

Maksimal Opkaldsstabelstorrelse Overskredet Fejl I Javascript Forklaret



Rekursive funktioner er funktioner, der kalder en metode inden for en anden metode. Uendelig rekursion forårsager imidlertid en stakstørrelsesfejl. Fejlen i stakstørrelsen opstår på grund af afventende mange anmodninger. Dette problem opstår, når du kalder selve funktionen. Ved at overveje det, forklarer denne artikel, at den maksimale opkaldsstakstørrelse overstiger fejlen i JavaScript. Desuden er løsningen også tilvejebragt for at løse fejlen.

Artiklen tjener os som følger:







  • Maksimal opkaldsstabelstørrelse overskredet Fejl i JavaScript
  • Bruger hvis Betingelse til at løse den maksimale opkaldsstakstørrelse overskredet fejl
  • Bruger for loop til at løse den maksimale opkaldsstakstørrelse overskredet fejl.

Maksimal opkaldsstabelstørrelse overskredet Fejl i JavaScript

Fejlen for stakstørrelsen overskredet opstår, når brugeren kalder den rekursive funktion. Denne type fejl opstår på grund af gentagne gange påberåbelse af en metode. Det sjov_bruger() bruges som et rekursivt kald inde i funktionen sjov_bruger() i JavaScript for at generere en fejl i konsolvinduet.



Kode



console.log ( 'Maksimal opkaldsstakstørrelse overskredet' ) ;
sjov_bruger ( ) ;
fungere sjov_bruger ( )
{
sjov_bruger ( ) ;
}





I denne kode er 'maksimal opkaldsstakstørrelse overskredet fejl' genereres ved at kalde en metode 'sjov_bruger()' inde i funktionen.



Koden viser fejlen som 'RangeError: Maksimal opkaldsstakstørrelse overskredet.'

Der er mange måder at løse denne fejl på, som f.eks for sløjfe og betingede erklæringer , som kan bruges til at begrænse funktionskaldet.

Løsning 1: Brug af if Condition til at løse den maksimale opkaldsstakstørrelse overskredet fejl

For at løse fejlen anvendes if-betingelsen for at begrænse stakstørrelsen i JavaScript. For eksempel er koden angivet nedenfor.

Kode

var jeg = 1 ;
sjov_bruger ( jeg ) ;
fungere sjov_bruger ( jeg ) {
hvis ( jeg < = 10 )
{
console.log ( 'Velkommen til JavaScript' ) ;
jeg =i+ 1 ;
sjov_bruger ( jeg ) ;
} }

Beskrivelsen af ​​koden er som følger:

  • For det første en variabel 'jeg' initialiseres med værdien 1.
  • Efter det, sjov_bruger() metoden anvendes ved at overføre variablen 'jeg'.
  • I denne funktion, hvis betingelse er anvendt, begrænser iterationen til 10 .
  • Til sidst beskeden 'Velkommen til JavaScript' vises ved hjælp af 'console.log()' metode.

Produktion

Løsning 2: Brug for Loop til at løse den maksimale opkaldsstakstørrelse overskredet-fejlen

For at løse fejlen, bruges en for-løkke til at begrænse iterationerne i JavaScript. For eksempel er koden angivet nedenfor.

Kode

lade output = 0 ;
til ( lade i = 5 ; jeg > 0 ; jeg-- )
{
output += add ( 1 , 1 ) ;
}
fungere tilføje ( a, b ) {
Vend tilbage a + b;
}
console.log ( produktion ) ;

I denne kode:

  • Variablen 'produktion' initialiseres med værdien 0.
  • Derefter bruges en for-løkke til at udføre fem iterationer. I denne sløjfe er tilføje() metode kaldes ved at overføre værdien 1.
  • Metoden tilføje() returnerer tilføjelsen af ​​to variable -en og b .
  • I sidste ende er log() metoden bruges til at vise output i konsolvinduet.

Produktion

Udgangen vender tilbage '10' ved at løse fejlen i den maksimale opkaldsstakstørrelse i JavaScript.

Konklusion

Det uendelige kald af rekursive funktioner sker som 'maksimal opkaldsstakstørrelse overskredet fejl' i JavaScript. Denne artikel forklarer årsagerne til at forårsage denne type fejl. Bagefter to løsninger, bl.a 'for loop' og 'betingede erklæringer' bruges til at løse fejlen. Derfor er de kaldende funktioner begrænset ved at anvende disse løsninger.