Viršytas maksimalus skambučių krūvos dydis Klaida JavaScript | Paaiškino

Virsytas Maksimalus Skambuciu Kruvos Dydis Klaida Javascript Paaiskino



Rekursinės funkcijos yra funkcijos, kurios iškviečia metodą kitame metode. Tačiau begalinė rekursija sukelia krūvos dydžio klaidą. Krūvos dydžio klaida atsiranda dėl daugelio laukiančių užklausų. Ši problema kyla iškviečiant pačią funkciją. Atsižvelgiant į tai, šiame straipsnyje paaiškinama, kad maksimalus iškvietimų krūvos dydis viršija „JavaScript“ klaidą. Be to, taip pat pateikiamas sprendimas, kaip išspręsti klaidą.

Straipsnis mums tarnauja taip:







  • Viršytas maksimalus skambučių krūvos dydis „JavaScript“ klaida
  • Sąlyga „if“ naudojimas siekiant išspręsti didžiausio skambučių krūvos dydžio viršijimo klaidą
  • Naudojant for kilpą, kad išspręstumėte didžiausio skambučių dėklo dydžio viršijimo klaidą.

Viršytas maksimalus skambučių krūvos dydis „JavaScript“ klaida

Viršytas krūvos dydis įvyksta, kai vartotojas iškviečia rekursinę funkciją. Tokio tipo klaida atsiranda dėl pakartotinio metodo iškvietimo. The fun_user() naudojamas kaip rekursinis iškvietimas funkcijos viduje fun_user() „JavaScript“, kad sugeneruotumėte klaidą konsolės lange.



Kodas



console.log ( Viršytas maksimalus skambučių krūvos dydis ) ;
fun_user ( ) ;
funkcija fun_user ( )
{
fun_user ( ) ;
}





Šiame kode, Klaida „viršytas maksimalus skambučių krūvos dydis“ generuojamas iškviečiant metodą 'fun_user()' funkcijos viduje.



Kodas klaidą rodo kaip „RangeError: Viršytas maksimalus skambučių krūvos dydis“.

Yra daug būdų, kaip išspręsti šią klaidą, pvz už kilpą ir sąlyginiai teiginiai , kuris gali būti naudojamas funkcijos iškvietimui apriboti.

1 sprendimas: naudokite if Condition, kad išspręstumėte, ar viršytas maksimalus skambučių krūvos dydis

Kad būtų išspręsta klaida, taikoma sąlyga if, kad būtų apribotas „JavaScript“ dėklo dydis. Pavyzdžiui, kodas pateikiamas žemiau.

Kodas

buvo i = 1 ;
fun_user ( i ) ;
funkcija fun_user ( i ) {
jeigu ( i < = 10 )
{
console.log ( „Sveiki atvykę į JavaScript“ ) ;
i =i+ 1 ;
fun_user ( i ) ;
} }

Kodo aprašymas yra toks:

  • Pirma, kintamasis 'aš' inicijuojamas reikšme 1.
  • Po to fun_user() metodas naudojamas perduodant kintamąjį 'aš'.
  • Šioje funkcijoje, jei taikoma sąlyga, kuri riboja iteraciją iki 10 .
  • Galiausiai žinutė „Sveiki atvykę į JavaScript“ rodomas naudojant „console.log()“ metodas.

Išvestis

2 sprendimas: naudokite for Loop, kad išspręstumėte klaidą, viršijančią maksimalaus skambučių krūvos dydį

Norint išspręsti klaidą, „JavaScript“ iteracijai apriboti naudojama kilpa „for“. Pavyzdžiui, kodas pateikiamas žemiau.

Kodas

leisti išvestis = 0 ;
dėl ( leisti aš = 5 ; i > 0 ; aš-- )
{
išvestis += pridėti ( 1 , 1 ) ;
}
funkcija papildyti ( a, b ) {
grąžinti a + b;
}
console.log ( išvestis ) ;

Šiame kode:

  • Kintamasis 'išvestis' inicijuojamas reikšme 0.
  • Po to, norint atlikti penkias iteracijas, naudojama for kilpa. Šioje kilpoje papildyti() metodas iškviečiamas perduodant reikšmę 1.
  • Metodas papildyti() grąžina dviejų kintamųjų pridėjimą a ir b .
  • Galų gale, žurnalas () metodas naudojamas išvesties rodymui konsolės lange.

Išvestis

Išvestis grįžta '10' išspręsdami maksimalaus iškvietimo krūvos dydžio klaidą „JavaScript“.

Išvada

Begalinis rekursinių funkcijų iškvietimas įvyksta kaip Klaida „viršytas maksimalus skambučių krūvos dydis“ JavaScript. Šiame straipsnyje paaiškinamos tokio tipo klaidų priežastys. Vėliau du sprendimai, įskaitant „už kilpą“ ir „sąlyginiai pareiškimai“ yra naudojami klaidai išspręsti. Taigi, naudojant šiuos sprendimus, skambinimo funkcijos yra ribojamos.