Maksimaalne kõnevirna suurus ületas viga JavaScriptis | Selgitatud

Maksimaalne Konevirna Suurus Uletas Viga Javascriptis Selgitatud



Rekursiivsed funktsioonid on funktsioonid, mis kutsuvad välja meetodi teise meetodi sees. Lõpmatu rekursioon põhjustab aga virna suuruse vea. Virna suuruse viga ilmneb paljude taotluste ooteloleku tõttu. See probleem tekib funktsiooni enda kutsumisel. Seda arvesse võttes selgitab see artikkel, et maksimaalne kõnevirna suurus ületab JavaScripti vea. Lisaks pakutakse lahendust ka vea lahendamiseks.

Artikkel teenindab meid järgmiselt:







  • Maksimaalne kõnevirna suurus ületas viga JavaScriptis
  • Tingimuse if kasutamine maksimaalse kõnevirna suuruse ületamise vea lahendamiseks
  • Silmuse for-i kasutamine maksimaalse kõnevirna suuruse ületamise vea lahendamiseks.

Maksimaalne kõnevirna suurus ületas viga JavaScriptis

Virna suuruse ületamise tõrge ilmneb siis, kui kasutaja kutsub välja rekursiivse funktsiooni. Seda tüüpi tõrge ilmneb meetodi korduva käivitamise tõttu. The fun_user() kasutatakse funktsiooni sees rekursiivse kõnena fun_user() JavaScriptis, et luua konsooliaknas tõrketeade.



Kood



console.log ( 'Maksimaalne kõnevirna suurus on ületatud' ) ;
fun_user ( ) ;
funktsiooni fun_user ( )
{
fun_user ( ) ;
}





Selles koodis on Viga 'maksimaalne kõne pinu suurus on ületatud' genereeritakse meetodi kutsumisega 'fun_user()' funktsiooni sees.



Kood kuvab vea kui 'RangeError: kõnevirna maksimaalne suurus on ületatud.'

Selle vea lahendamiseks on palju võimalusi, näiteks silmuse jaoks ja tingimuslikud väited , mida saab kasutada funktsiooni kutsumise piiramiseks.

Lahendus 1. Kasutage tingimust if, et lahendada maksimaalne kõnevirna suurus ületas vea

Vea lahendamiseks rakendatakse JavaScripti virna suuruse piiramiseks tingimust if. Näiteks on kood toodud allpool.

Kood

oli i = 1 ;
fun_user ( i ) ;
funktsiooni fun_user ( i ) {
kui ( i < = 10 )
{
console.log ( 'Tere tulemast JavaScripti' ) ;
i =i+ 1 ;
fun_user ( i ) ;
} }

Koodi kirjeldus on järgmine:

  • Esiteks muutuja 'mina' lähtestatakse väärtusega 1.
  • Pärast seda, fun_user() meetodit kasutatakse muutuja edastamisega 'i'.
  • Selles funktsioonis, kui rakendatakse tingimust, mis piirab iteratsiooni 10 .
  • Lõpuks sõnum 'Tere tulemast JavaScripti' kuvatakse kasutades 'console.log()' meetod.

Väljund

Lahendus 2. Kasutage for Loop maksimaalse kõnevirna suuruse ületamise tõrke lahendamiseks

Vea lahendamiseks kasutatakse JavaScripti iteratsioonide piiramiseks tsüklit for. Näiteks on kood toodud allpool.

Kood

lase väljund = 0 ;
jaoks ( lase i = 5 ; i > 0 ; mina-- )
{
väljund += lisa ( 1 , 1 ) ;
}
funktsiooni lisama ( a, b ) {
tagasi a + b;
}
console.log ( väljund ) ;

Selles koodis:

  • Muutuja 'väljund' lähtestatakse väärtusega 0.
  • Pärast seda kasutatakse for-tsüklit viie iteratsiooni sooritamiseks. Selles tsüklis on lisama() meetod kutsutakse välja väärtuse 1 edastamisega.
  • Meetod lisama() tagastab kahe muutuja liitmise a ja b .
  • Lõpuks, logi() meetodit kasutatakse väljundi kuvamiseks konsooliaknas.

Väljund

Väljund naaseb '10' lahendades JavaScripti kõnevirna maksimaalse suuruse vea.

Järeldus

Rekursiivsete funktsioonide lõputu kutsumine toimub kui Viga 'maksimaalne kõne pinu suurus on ületatud' JavaScriptis. See artikkel selgitab seda tüüpi tõrke põhjuseid. Seejärel kaks lahendust, sealhulgas 'tsükli jaoks' ja 'tingimuslikud avaldused' kasutatakse vea lahendamiseks. Seetõttu on nende lahenduste kasutamisel helistamisfunktsioonid piiratud.