Prekročená maximálna veľkosť zásobníka hovorov Chyba v JavaScripte | Vysvetlené

Prekrocena Maximalna Velkost Zasobnika Hovorov Chyba V Javascripte Vysvetlene



Rekurzívne funkcie sú funkcie, ktoré volajú metódu v rámci inej metódy. Nekonečná rekurzia však spôsobuje chybu veľkosti zásobníka. Chyba veľkosti zásobníka sa vyskytuje v dôsledku nevybavených požiadaviek. Tento problém vzniká pri volaní samotnej funkcie. Tento článok vysvetľuje, že maximálna veľkosť zásobníka hovorov presahuje chybu v JavaScripte. Okrem toho je k dispozícii aj riešenie na vyriešenie chyby.

Článok nám slúži nasledovne:







  • Prekročená maximálna veľkosť zásobníka hovorov Chyba v JavaScripte
  • Chyba pri použití podmienky if na vyriešenie prekročenia maximálnej veľkosti zásobníka hovorov
  • Použitie cyklu for na vyriešenie chyby prekročenia maximálnej veľkosti zásobníka hovorov.

Prekročená maximálna veľkosť zásobníka hovorov Chyba v JavaScripte

Chyba prekročenia veľkosti zásobníka nastane, keď používateľ zavolá rekurzívnu funkciu. Tento typ chyby sa vyskytuje v dôsledku opakovaného vyvolávania metódy. The fun_user() sa používa ako rekurzívne volanie vnútri funkcie fun_user() v JavaScripte, aby sa vygenerovala chyba v okne konzoly.



kód



konzola.log ( 'Prekročila sa maximálna veľkosť zásobníka hovorov' ) ;
fun_user ( ) ;
funkciu fun_user ( )
{
fun_user ( ) ;
}





V tomto kóde je Chyba „prekročila sa maximálna veľkosť zásobníka hovorov“ sa generuje volaním metódy 'fun_user()' vnútri funkcie.



Kód zobrazí chybu ako 'RangeError: Maximálna veľkosť zásobníka hovorov bola prekročená.'

Existuje mnoho spôsobov, ako túto chybu vyriešiť, ako napr pre slučku a podmienené príkazy , ktorý možno použiť na obmedzenie volania funkcie.

Riešenie 1: Použitie podmienky if na vyriešenie chyby prekročenia maximálnej veľkosti zásobníka hovorov

Na vyriešenie chyby sa na obmedzenie veľkosti zásobníka v JavaScripte použije podmienka if. Napríklad kód je uvedený nižšie.

kód

bol i = 1 ;
fun_user ( i ) ;
funkciu fun_user ( i ) {
ak ( i < = 10 )
{
konzola.log ( „Vitajte v JavaScripte“ ) ;
i =i+ 1 ;
fun_user ( i ) ;
} }

Popis kódu je nasledovný:

  • Po prvé, premenná 'ja' inicializuje sa hodnotou 1.
  • Potom, fun_user() metóda sa používa odovzdaním premennej „ja“.
  • V tejto funkcii, ak je aplikovaná podmienka, ktorá obmedzuje iteráciu na 10 .
  • Nakoniec správa “Vitajte v JavaScripte” sa zobrazí pomocou 'console.log()' metóda.

Výkon

Riešenie 2: Chyba prekročenia maximálnej veľkosti zásobníka hovorov pomocou funkcie pre slučku

Na vyriešenie chyby sa používa cyklus for na obmedzenie iterácií v JavaScripte. Napríklad kód je uvedený nižšie.

kód

nech výstup = 0 ;
pre ( nech i = 5 ; i > 0 ; ja-- )
{
výstup += pridať ( 1 , 1 ) ;
}
funkciu pridať ( a, b ) {
vrátiť a + b;
}
konzola.log ( výkon ) ;

V tomto kóde:

  • Premenná 'výkon' sa inicializuje s hodnotou 0.
  • Potom sa použije cyklus for na vykonanie piatich iterácií. V tejto slučke, pridať () metóda sa volá odovzdaním hodnoty 1.
  • Metóda pridať () vráti sčítanie dvoch premenných a a b .
  • Nakoniec, log() metóda sa používa na zobrazenie výstupu v okne konzoly.

Výkon

Výstup sa vráti '10' vyriešením chyby maximálnej veľkosti zásobníka hovorov v JavaScripte.

Záver

Nekonečné volanie rekurzívnych funkcií sa vyskytuje ako Chyba „prekročila sa maximálna veľkosť zásobníka hovorov“ v JavaScripte. Tento článok vysvetľuje dôvody, ktoré spôsobujú tento typ chyby. Potom dve riešenia, vrátane 'pre slučku' a 'podmienečné vyhlásenia' sa používajú na odstránenie chyby. Preto sú funkcie volania pri použití týchto riešení obmedzené.