Pogreška u JavaScriptu premašila je maksimalnu veličinu hrpe poziva | Objašnjeno

Pogreska U Javascriptu Premasila Je Maksimalnu Velicinu Hrpe Poziva Objasnjeno



Rekurzivne funkcije su funkcije koje pozivaju metodu unutar druge metode. Međutim, beskonačna rekurzija uzrokuje pogrešku veličine stoga. Pogreška veličine stoga javlja se zbog čekanja mnogih zahtjeva. Ovaj problem nastaje prilikom pozivanja same funkcije. Razmatrajući to, ovaj članak objašnjava da maksimalna veličina stoga poziva premašuje pogrešku u JavaScriptu. Štoviše, rješenje je također osigurano za rješavanje pogreške.

Članak nam služi na sljedeći način:







  • Pogreška u JavaScriptu premašila je maksimalnu veličinu hrpe poziva
  • Korištenje uvjeta if za rješavanje pogreške o prekoračenju maksimalne veličine stoga poziva
  • Upotreba for petlje za rješavanje pogreške o prekoračenju maksimalne veličine stoga poziva.

Pogreška u JavaScriptu premašila je maksimalnu veličinu hrpe poziva

Pogreška premašivanja veličine hrpa javlja se kada korisnik pozove rekurzivnu funkciju. Ova vrsta pogreške javlja se zbog opetovanog pozivanja metode. The zabavni_korisnik() se koristi kao rekurzivni poziv unutar funkcije zabavni_korisnik() u JavaScriptu za generiranje pogreške u prozoru konzole.



Kodirati



konzola.log ( 'Premašena maksimalna veličina stoga poziva' ) ;
zabavni_korisnik ( ) ;
funkcija zabavni_korisnik ( )
{
zabavni_korisnik ( ) ;
}





U ovom kodu, 'pogreška premašenja maksimalne veličine stoga poziva' generira se pozivanjem metode “fun_user()” unutar funkcije.



Kod prikazuje grešku kao 'RangeError: premašena maksimalna veličina stoga poziva.'

Postoji mnogo načina za rješavanje ove pogreške, kao što je za petlju i uvjetne izjave , koji se može koristiti za ograničavanje poziva funkcije.

Rješenje 1: Upotreba uvjeta if za rješavanje pogreške o prekoračenju maksimalne veličine stoga poziva

Da biste riješili pogrešku, primjenjuje se uvjet if za ograničavanje veličine stoga u JavaScriptu. Na primjer, kod je dan u nastavku.

Kodirati

bio je ja = 1 ;
zabavni_korisnik ( ja ) ;
funkcija zabavni_korisnik ( ja ) {
ako ( ja < = 10 )
{
konzola.log ( 'Dobro došli u JavaScript' ) ;
ja =i+ 1 ;
zabavni_korisnik ( ja ) ;
} }

Opis koda je sljedeći:

  • Prvo, varijabla 'ja' inicijalizira se vrijednošću 1.
  • nakon toga, zabavni_korisnik() metoda se koristi prosljeđivanjem varijable 'i'.
  • U ovoj funkciji, ako je primijenjen uvjet koji ograničava ponavljanje na 10 .
  • Na kraju, poruka “Dobro došli u JavaScript” prikazuje se pomoću “console.log()” metoda.

Izlaz

2. rješenje: korištenje for petlje za rješavanje pogreške o prekoračenju maksimalne veličine snopa poziva

Da bi se riješila pogreška, koristi se for petlja za ograničavanje ponavljanja u JavaScriptu. Na primjer, kod je dan u nastavku.

Kodirati

neka izlaz = 0 ;
za ( neka ja = 5 ; ja > 0 ; ja-- )
{
izlaz += zbroj ( 1 , 1 ) ;
}
funkcija dodati ( a, b ) {
povratak a + b;
}
konzola.log ( izlaz ) ;

U ovom kodu:

  • Varijabla 'izlaz' se inicijalizira s vrijednošću 0.
  • Nakon toga, for petlja se koristi za izvođenje pet ponavljanja. U ovoj petlji, dodati() metoda se poziva prosljeđivanjem vrijednosti 1.
  • Način dodati() vraća zbrajanje dviju varijabli a i b .
  • Na kraju, log() metoda se koristi za prikaz izlaza u prozoru konzole.

Izlaz

Izlaz se vraća “10” rješavanjem pogreške maksimalne veličine stoga poziva u JavaScriptu.

Zaključak

Beskonačno pozivanje rekurzivnih funkcija događa se kao 'pogreška premašenja maksimalne veličine stoga poziva' u JavaScriptu. Ovaj članak objašnjava razloge za nastanak ove vrste pogreške. Nakon toga, dva rješenja, uključujući 'petlja za' i “uvjetne izjave” koriste se za rješavanje pogreške. Stoga su funkcije pozivanja ograničene primjenom ovih rješenja.