Dimensiunea maximă a stivei de apeluri a fost depășită Eroare în JavaScript | explicat

Dimensiunea Maxima A Stivei De Apeluri A Fost Depasita Eroare In Javascript Explicat



Funcțiile recursive sunt funcții care apelează o metodă în cadrul unei alte metode. Cu toate acestea, recursiunea infinită provoacă o eroare de dimensiunea stivei. Eroarea de dimensiunea stivei apare din cauza multor solicitări în așteptare. Această problemă apare la apelarea funcției în sine. Luând în considerare acest lucru, acest articol explică faptul că dimensiunea maximă a stivei de apeluri depășește eroarea din JavaScript. Mai mult, soluția este oferită și pentru a rezolva eroarea.

Articolul ne servește astfel:







  • Dimensiunea maximă a stivei de apeluri a fost depășită Eroare în JavaScript
  • Utilizarea dacă Condiția pentru a rezolva eroarea depășită a dimensiunii maxime a stivei de apeluri
  • Folosirea buclei for pentru a rezolva eroarea depășită a dimensiunii maxime a stivei de apeluri.

Dimensiunea maximă a stivei de apeluri a fost depășită Eroare în JavaScript

Eroarea depășită a dimensiunii stivei apare atunci când utilizatorul apelează funcția recursivă. Acest tip de eroare apare din cauza invocării repetate a unei metode. The fun_user() este utilizat ca un apel recursiv în interiorul funcției fun_user() în JavaScript pentru a genera o eroare în fereastra consolei.



Cod



console.log ( „Dimensiunea maximă a stivei de apeluri a fost depășită” ) ;
utilizator_distractiv ( ) ;
funcţie utilizator_distractiv ( )
{
utilizator_distractiv ( ) ;
}





În acest cod, „Eroare depășită dimensiunea maximă a stivei de apeluri” este generat prin apelarea unei metode „fun_user()” în interiorul funcției.



Codul afișează eroarea ca „RangeError: Dimensiunea maximă a stivei de apeluri a fost depășită.”

Există multe modalități de a rezolva această eroare, cum ar fi pentru buclă și declarații condiționale , care poate fi folosit pentru a limita apelul funcției.

Soluția 1: Utilizarea dacă Condiția pentru a rezolva dimensiunea maximă a stivei de apeluri a depășit eroarea

Pentru a rezolva eroarea, se aplică condiția if pentru a restricționa dimensiunea stivei în JavaScript. De exemplu, codul este dat mai jos.

Cod

a fost i = 1 ;
utilizator_distractiv ( i ) ;
funcţie utilizator_distractiv ( i ) {
dacă ( i < = 10 )
{
console.log ( „Bine ați venit la JavaScript” ) ;
i =i+ 1 ;
utilizator_distractiv ( i ) ;
} }

Descrierea codului este următoarea:

  • În primul rând, o variabilă „eu” este inițializată cu valoarea 1.
  • Dupa aceea, fun_user() metoda este folosită prin trecerea variabilei „eu”.
  • În această funcție, dacă se aplică o condiție care restricționează iterația la 10 .
  • În sfârșit, mesajul „Bine ați venit la JavaScript” este afișat folosind „console.log()” metodă.

Ieșire

Soluția 2: Folosirea buclei for pentru a rezolva eroarea depășită de dimensiunea maximă a stivei de apeluri

Pentru a rezolva eroarea, se utilizează o buclă for pentru a limita iterațiile în JavaScript. De exemplu, codul este dat mai jos.

Cod

lăsa ieșire = 0 ;
pentru ( lăsa i = 5 ; i > 0 ; eu-- )
{
ieșire += adaugă ( 1 , 1 ) ;
}
funcţie adăuga ( a, b ) {
întoarcere a + b;
}
console.log ( ieșire ) ;

În acest cod:

  • Variabila „ieșire” este inițializată cu valoarea 0.
  • După aceea, o buclă for este utilizată pentru a efectua cinci iterații. În această buclă, adăuga() metoda este apelată prin trecerea valorii 1.
  • Metoda adăuga() returnează adăugarea a două variabile A și b .
  • În cele din urmă, cel Buturuga() metoda este folosită pentru a afișa rezultatul în fereastra consolei.

Ieșire

Ieșirea revine „10” prin rezolvarea erorii de dimensiune maximă a stivei de apeluri în JavaScript.

Concluzie

Apelarea infinită a funcțiilor recursive are loc ca „Eroare depășită dimensiunea maximă a stivei de apeluri” în JavaScript. Acest articol explică motivele pentru care provoacă acest tip de eroare. După aceea, două soluții, inclusiv „pentru buclă” și „Declarații condiționate” sunt utilizate pentru a rezolva eroarea. Prin urmare, funcțiile de apelare sunt restricționate prin utilizarea acestor soluții.