Rekursiiviset funktiot ovat funktioita, jotka kutsuvat menetelmää toisen menetelmän sisällä. Kuitenkin ääretön rekursio aiheuttaa pinon kokovirheen. Pinon kokovirhe johtuu monista odottavista pyynnöistä. Tämä ongelma ilmenee kutsuttaessa itse funktiota. Tässä artikkelissa selitetään, että puhelupinon enimmäiskoko ylittää JavaScriptin virheen. Lisäksi tarjotaan ratkaisu virheen ratkaisemiseksi.
Artikkeli palvelee meitä seuraavasti:
- Enimmäispuhelupinon koko ylitetty -virhe JavaScriptissä
- Jos ehtoa käytetään ratkaisemaan puhelupinon enimmäiskoko ylitetty -virhe
- For-silmukan käyttäminen puhelupinon enimmäiskoon ylittymisen virheen ratkaisemiseen.
Enimmäispuhelupinon koko ylitetty -virhe JavaScriptissä
Pinon koko ylitetty -virhe ilmenee, kun käyttäjä kutsuu rekursiivista funktiota. Tämän tyyppinen virhe johtuu menetelmän toistuvasta kutsumisesta. The hauska_käyttäjä() käytetään rekursiivisena kutsuna funktion sisällä hauska_käyttäjä() JavaScriptissä luodaksesi virheen konsoliikkunassa.
Koodi
console.log ( 'Puhelupinon enimmäiskoko ylitetty' ) ;
fun_user ( ) ;
toiminto fun_user ( )
{
fun_user ( ) ;
}
Tässä koodissa 'puhelupinon enimmäiskoko ylitetty virhe' generoidaan kutsumalla menetelmää 'hauska_käyttäjä()' toiminnon sisällä.
Koodi näyttää virheen muodossa 'RangeError: Puhelupinon enimmäiskoko ylitetty.'
On monia tapoja ratkaista tämä virhe, kuten silmukalle ja ehdolliset lausunnot , jota voidaan käyttää rajoittamaan funktiokutsua.
Ratkaisu 1: Käytä if Conditionia ratkaistaksesi puhelupinon enimmäiskoko ylitetty -virhe
Virheen ratkaisemiseksi käytetään if-ehtoa rajoittamaan pinon kokoa JavaScriptissä. Esimerkiksi koodi on annettu alla.
Koodi
oli i = 1 ;fun_user ( i ) ;
toiminto fun_user ( i ) {
jos ( i < = 10 )
{
console.log ( 'Tervetuloa JavaScriptiin' ) ;
i =i+ 1 ;
fun_user ( i ) ;
} }
Koodin kuvaus on seuraava:
- Ensinnäkin muuttuja 'minä' alustetaan arvolla 1.
- Sen jälkeen, hauska_käyttäjä() menetelmää käytetään ohittamalla muuttuja 'i'.
- Jos tässä funktiossa käytetään ehtoa, joka rajoittaa iteroinnin tähän 10 .
- Lopuksi viesti 'Tervetuloa JavaScriptiin' näytetään käyttämällä 'console.log()' menetelmä.
Lähtö
Ratkaisu 2: Käytä for Loop -toimintoa puhelupinon enimmäiskoon ylitysvirheen ratkaisemiseen
Virheen ratkaisemiseksi käytetään for-silmukkaa rajoittamaan iteraatioita JavaScriptissä. Esimerkiksi koodi on annettu alla.
Koodi
päästää lähtö = 0 ;varten ( päästää minä = 5 ; i > 0 ; minä-- )
{
lähtö += lisäys ( 1 , 1 ) ;
}
toiminto lisätä ( a, b ) {
palata a + b;
}
console.log ( ulostulo ) ;
Tässä koodissa:
- Muuttuja 'lähtö' alustetaan arvolla 0.
- Sen jälkeen for-silmukkaa käytetään viiden iteroinnin suorittamiseen. Tässä silmukassa lisätä() menetelmää kutsutaan välittämällä arvo 1.
- Menetelmä lisätä() palauttaa kahden muuttujan lisäyksen a ja b .
- Lopulta Hirsi() menetelmää käytetään tulosteen näyttämiseen konsoliikkunassa.
Lähtö
Tulos palaa '10' ratkaisemalla JavaScriptin enimmäiskutsupinon koon virheen.
Johtopäätös
Rekursiivisten funktioiden ääretön kutsu tapahtuu 'puhelupinon enimmäiskoko ylitetty virhe' JavaScriptissä. Tässä artikkelissa selitetään syyt tämäntyyppisten virheiden aiheuttamiseen. Myöhemmin kaksi ratkaisua, mukaan lukien 'silmukalle' ja 'ehdolliset lausunnot' käytetään vian ratkaisemiseen. Näin ollen soittotoimintoja rajoitetaan käyttämällä näitä ratkaisuja.