Maksimal samtale stabel størrelse overskredet feil i JavaScript | Forklart

Maksimal samtale stabel størrelse overskredet feil i JavaScript | Forklart

Rekursive funksjoner er funksjoner som kaller en metode innen en annen metode. Imidlertid forårsaker uendelig rekursjon en feilstørrelsesfeil. Stabelstørrelsesfeilen oppstår på grunn av verserende av mange forespørsler. Dette problemet oppstår når du kaller funksjonen selv. Ved å vurdere det, forklarer denne artikkelen at den maksimale samtalestabelstørrelsen overstiger feilen i JavaScript. Videre er løsningen også gitt for å løse feilen.

Artikkelen tjener oss som følger:

  • Maksimal samtale stabel størrelse overskredet feil i JavaScript
  • Bruke IF -tilstand for å løse den maksimale samtalestabelstørrelsen overskredet feil
  • Bruker for Loop for å løse den maksimale samtalestabelstørrelsen overskredet feil.

Maksimal samtale stabel størrelse overskredet feil i JavaScript

Stabelstørrelsen overskredet feil når brukeren kaller den rekursive funksjonen. Denne typen feil oppstår på grunn av gjentatte ganger å påkalle en metode. De FUN_USER () brukes som en rekursiv samtale i funksjonen FUN_USER () I JavaScript for å generere en feil i konsollvinduet.

Kode

konsoll.Logg ("Maksimal samtale stabelstørrelse overskredet");
FUN_USER ();
funksjon FUN_USER ()

FUN_USER ();

I denne koden, “Maksimal anropsstørrelse overskred feil” genereres ved å ringe en metode “FUN_USER ()” inne i funksjonen.

Koden viser feilen som “RangeError: Maksimal størrelse på samtalestabelen overskredet.”

Det er mange måter å løse denne feilen på, for eksempel for sløyfe og betingede uttalelser, som kan brukes til å begrense funksjonssamtalen.

Løsning 1: Bruke IF -tilstand for å løse den maksimale samtalestabelstørrelsen overskredet feil

For å løse feilen, blir IF -tilstanden brukt for å begrense stabelstørrelsen i JavaScript. For eksempel er koden gitt nedenfor.

Kode

var i = 1;
FUN_USER (I);
funksjon FUN_USER (i)
hvis jeg <= 10)

konsoll.Logg ('Velkommen til JavaScript');
i = i+1;
FUN_USER (I);

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 å passere variabelen "Jeg".
  • I denne funksjonen, hvis det brukes tilstand som begrenser iterasjonen til 10.
  • Til slutt meldingen “Velkommen til JavaScript” vises ved hjelp av “Konsoll.Logg()" metode.

Produksjon

Løsning 2: Bruke for sløyfe for å løse den maksimale samtalestabelstørrelsen overskredet feil

For å løse feilen, brukes en for loop for å begrense iterasjonene i JavaScript. For eksempel er koden gitt nedenfor.

Kode

La utgang = 0;
for (la i = 5; i> 0; i--)

utgang += legg til (1, 1);

funksjon Legg til (a, b)
returner A + B;

konsoll.logg (utgang);

I denne koden:

  • Variabelen "produksjon" initialiseres med en verdi på 0.
  • Etter det brukes en for sløyfe til å utføre fem iterasjoner. I denne sløyfen, Legg til() metoden kalles ved å passere verdien 1.
  • Metoden Legg til() Returnerer tillegg av to variabler en og b.
  • Til slutt, denLogg() Metoden brukes for å vise utdataene i konsollvinduet.

Produksjon

Utgangen kommer tilbake “10” Ved å løse feilen med maksimal samtale stabelstørrelse i JavaScript.

Konklusjon

Det uendelige kallet av rekursive funksjoner skjer som “Maksimal anropsstørrelse overskred 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.