Maximální velikost zásobníku hovorů překročena Chyba v JavaScriptu | Vysvětleno

Maximalni Velikost Zasobniku Hovoru Prekrocena Chyba V Javascriptu Vysvetleno



Rekurzivní funkce jsou funkce, které volají metodu v rámci jiné metody. Nekonečná rekurze však způsobí chybu velikosti zásobníku. K chybě velikosti zásobníku dochází v důsledku nevyřízených požadavků. Tento problém nastává při volání samotné funkce. Tento článek vysvětluje, že maximální velikost zásobníku volání překračuje chybu v JavaScriptu. Kromě toho je k dispozici také řešení pro vyřešení chyby.

Článek nám slouží následovně:







  • Maximální velikost zásobníku hovorů překročena Chyba v JavaScriptu
  • Chyba při použití podmínky if k vyřešení překročení maximální velikosti zásobníku volání
  • Použití smyčky for k vyřešení chyby překročení maximální velikosti zásobníku volání.

Maximální velikost zásobníku hovorů překročena Chyba v JavaScriptu

Když uživatel zavolá rekurzivní funkci, dojde k chybě překročení velikosti zásobníku. K tomuto typu chyby dochází v důsledku opakovaného vyvolávání metody. The fun_user() se používá jako rekurzivní volání uvnitř funkce fun_user() v JavaScriptu vygenerovat chybu v okně konzoly.



Kód



konzole.log ( 'Překročena maximální velikost zásobníku hovorů' ) ;
fun_user ( ) ;
funkce fun_user ( )
{
fun_user ( ) ;
}





V tomto kódu je Chyba „překročení maximální velikosti zásobníku volání“ se generuje voláním metody 'fun_user()' uvnitř funkce.



Kód zobrazí chybu jako 'RangeError: Překročena maximální velikost zásobníku volání.'

Existuje mnoho způsobů, jak tuto chybu vyřešit, jako např pro smyčku a podmíněné příkazy , který lze použít k omezení volání funkce.

Řešení 1: Použití podmínky if k vyřešení chyby překročení maximální velikosti zásobníku volání

K vyřešení chyby se použije podmínka if k omezení velikosti zásobníku v JavaScriptu. Kód je například uveden níže.

Kód

byl i = 1 ;
fun_user ( i ) ;
funkce fun_user ( i ) {
-li ( i < = 10 )
{
konzole.log ( 'Vítejte v JavaScriptu' ) ;
i =i+ 1 ;
fun_user ( i ) ;
} }

Popis kódu je následující:

  • Za prvé, proměnná 'já' je inicializována hodnotou 1.
  • Potom, fun_user() metoda se používá předáním proměnné „já“.
  • V této funkci, pokud je aplikována podmínka, která omezuje iteraci na 10 .
  • Konečně zpráva “Vítejte v JavaScriptu” se zobrazí pomocí 'console.log()' metoda.

Výstup

Řešení 2: Chyba překročení maximální velikosti zásobníku volání pomocí funkce pro smyčku

K vyřešení chyby se používá smyčka for k omezení iterací v JavaScriptu. Kód je například uveden níže.

Kód

nechat výstup = 0 ;
pro ( nechat i = 5 ; i > 0 ; já-- )
{
výstup += přidat ( 1 , 1 ) ;
}
funkce přidat ( a, b ) {
vrátit se a + b;
}
konzole.log ( výstup ) ;

V tomto kódu:

  • Proměnná 'výstup' je inicializována hodnotou 0.
  • Poté se použije cyklus for k provedení pěti iterací. V této smyčce je přidat() metoda se volá předáním hodnoty 1.
  • Metoda přidat() vrátí sčítání dvou proměnných A a b .
  • Nakonec log() metoda se používá k zobrazení výstupu v okně konzoly.

Výstup

Výstup se vrací '10' vyřešením chyby maximální velikosti zásobníku volání v JavaScriptu.

Závěr

Nekonečné volání rekurzivních funkcí probíhá jako Chyba „překročení maximální velikosti zásobníku volání“ v JavaScriptu. Tento článek vysvětluje důvody způsobující tento typ chyby. Poté, dvě řešení, včetně 'pro smyčku' a 'podmíněné příkazy' se používají k vyřešení chyby. Použitím těchto řešení jsou tedy funkce volání omezeny.