Maksimālais zvanu steka lielums pārsniedz kļūdu JavaScript | Paskaidroja

Maksimalais Zvanu Steka Lielums Parsniedz Kludu Javascript Paskaidroja



Rekursīvās funkcijas ir funkcijas, kas izsauc metodi citā metodē. Tomēr bezgalīga rekursija izraisa steka izmēra kļūdu. Steka lieluma kļūda rodas daudzu neapstiprinātu pieprasījumu dēļ. Šī problēma rodas, izsaucot pašu funkciju. Apsverot to, šajā rakstā ir paskaidrots, ka maksimālais zvanu steka lielums pārsniedz JavaScript kļūdu. Turklāt tiek piedāvāts arī risinājums, lai novērstu kļūdu.

Raksts mums kalpo šādi:







  • Maksimālais zvanu steka lielums pārsniedz kļūdu JavaScript
  • Ja nosacījuma izmantošana, lai atrisinātu kļūdu, kas pārsniedz maksimālo zvanu steka lielumu
  • Cikla izmantošana, lai atrisinātu kļūdu, kas pārsniedz maksimālo zvanu steka lielumu.

Maksimālais zvanu steka lielums pārsniedz kļūdu JavaScript

Pārsniegtā steka lieluma kļūda rodas, kad lietotājs izsauc rekursīvo funkciju. Šāda veida kļūda rodas, atkārtoti izsaucot metodi. The fun_user() tiek izmantots kā rekursīvs izsaukums funkcijā fun_user() JavaScript, lai ģenerētu kļūdu konsoles logā.



Kods



console.log ( 'Pārsniegts maksimālais zvanu steka lielums' ) ;
fun_user ( ) ;
funkciju fun_user ( )
{
fun_user ( ) ;
}





Šajā kodā Kļūda “pārsniegts maksimālais zvanu steka lielums” tiek ģenerēts, izsaucot metodi “fun_user()” funkcijas iekšpusē.



Kods parāda kļūdu kā 'RangeError: pārsniegts maksimālais zvanu steka lielums.'

Ir daudzi veidi, kā novērst šo kļūdu, piemēram, cilpai un nosacījuma paziņojumi , ko var izmantot, lai ierobežotu funkcijas izsaukumu.

1. risinājums: izmantojiet if Condition, lai atrisinātu kļūdu, kas pārsniedz maksimālo zvanu steka lielumu

Lai novērstu kļūdu, tiek piemērots nosacījums if, lai ierobežotu steka lielumu JavaScript. Piemēram, kods ir norādīts zemāk.

Kods

bija i = 1 ;
fun_user ( i ) ;
funkciju fun_user ( i ) {
ja ( i < = 10 )
{
console.log ( 'Laipni lūdzam JavaScript' ) ;
i =i+ 1 ;
fun_user ( i ) ;
} }

Koda apraksts ir šāds:

  • Pirmkārt, mainīgais 'es' tiek inicializēts ar vērtību 1.
  • Pēc tam, fun_user() metode tiek izmantota, nododot mainīgo 'i'.
  • Šajā funkcijā, ja tiek piemērots nosacījums, kas ierobežo iterāciju līdz 10 .
  • Visbeidzot, ziņa “Laipni lūdzam JavaScript” tiek parādīts, izmantojot “console.log()” metodi.

Izvade

2. risinājums: izmantojiet for Loop, lai novērstu kļūdu, kas pārsniedz maksimālo zvanu steka lielumu

Lai novērstu kļūdu, tiek izmantota for cilpa, lai ierobežotu JavaScript iterācijas. Piemēram, kods ir norādīts zemāk.

Kods

ļaut izvade = 0 ;
priekš ( ļaut i = 5 ; i > 0 ; es-- )
{
izeja += pievieno ( 1 , 1 ) ;
}
funkciju pievienot ( a, b ) {
atgriezties a + b;
}
console.log ( izvade ) ;

Šajā kodā:

  • Mainīgais 'izeja' tiek inicializēts ar vērtību 0.
  • Pēc tam tiek izmantota for cilpa, lai veiktu piecas iterācijas. Šajā cilpā pievienot () metode tiek izsaukta, nododot vērtību 1.
  • Metode pievienot () atgriež divu mainīgo pievienošanu a un b .
  • Galu galā, žurnāls() metode tiek izmantota, lai parādītu izvadi konsoles logā.

Izvade

Izvade atgriežas “10” atrisinot JavaScript maksimālā zvanu steka lieluma kļūdu.

Secinājums

Rekursīvo funkciju bezgalīga izsaukšana notiek kā Kļūda “pārsniegts maksimālais zvanu steka lielums” JavaScript. Šajā rakstā ir izskaidroti šāda veida kļūdu cēloņi. Pēc tam divi risinājumi, tostarp 'cilpai' un 'nosacījuma paziņojumi' tiek izmantoti, lai novērstu kļūdu. Tādējādi, izmantojot šos risinājumus, zvanīšanas funkcijas tiek ierobežotas.