Ang Pinakamataas na Laki ng Stack ng Tawag ay Lumampas sa Error sa JavaScript | Ipinaliwanag

Ang Pinakamataas Na Laki Ng Stack Ng Tawag Ay Lumampas Sa Error Sa Javascript Ipinaliwanag



Ang mga recursive function ay mga function na tumatawag sa isang paraan sa loob ng ibang paraan. Gayunpaman, ang walang katapusang recursion ay nagdudulot ng error sa laki ng stack. Ang error sa laki ng stack ay nangyayari dahil sa nakabinbing maraming kahilingan. Ang problemang ito ay lumitaw kapag tumatawag sa mismong function. Sa pamamagitan ng pagsasaalang-alang dito, ipinapaliwanag ng artikulong ito na ang maximum na laki ng stack ng tawag ay lumampas sa error sa JavaScript. Bukod dito, ang solusyon ay ibinigay din upang malutas ang error.

Ang artikulo ay nagsisilbi sa amin tulad ng sumusunod:







  • Ang Maximum Call Stack Size ay Lumagpas sa Error sa JavaScript
  • Ang paggamit ng if Condition upang malutas ang maximum na laki ng stack ng tawag ay lumampas sa error
  • Ang paggamit ng for loop upang malutas ang maximum na laki ng stack ng tawag ay lumampas sa error.

Ang Maximum Call Stack Size ay Lumagpas sa Error sa JavaScript

Ang error na lumampas sa laki ng stack ay nangyayari kapag tinawag ng user ang recursive function. Ang ganitong uri ng error ay nangyayari dahil sa paulit-ulit na paggamit ng isang paraan. Ang fun_user() ay ginagamit bilang isang recursive na tawag sa loob ng function fun_user() sa JavaScript upang makabuo ng error sa console window.



Code



console.log ( 'Lumampas sa maximum na laki ng stack ng tawag' ) ;
fun_user ( ) ;
function fun_user ( )
{
fun_user ( ) ;
}





Sa code na ito, ang 'Lumampas sa error ang maximum na laki ng stack ng tawag' ay nabuo sa pamamagitan ng pagtawag sa isang pamamaraan “fun_user()” sa loob ng function.



Ipinapakita ng code ang error bilang 'RangeError: Lumampas ang maximum na laki ng stack ng tawag.'

Mayroong maraming mga paraan upang malutas ang error na ito, tulad ng para sa loop at mga kondisyong pahayag , na maaaring gamitin upang limitahan ang function na tawag.

Solusyon 1: Paggamit ng if Condition upang malutas ang maximum na laki ng stack ng tawag na lumampas sa error

Upang malutas ang error, inilapat ang kundisyong kung upang paghigpitan ang laki ng stack sa JavaScript. Halimbawa, ang code ay ibinigay sa ibaba.

Code

ay i = 1 ;
fun_user ( i ) ;
function fun_user ( i ) {
kung ( i < = 10 )
{
console.log ( 'Maligayang pagdating sa JavaScript' ) ;
i =i+ 1 ;
fun_user ( i ) ;
} }

Ang paglalarawan ng code ay ang mga sumusunod:

  • Una, isang variable 'ako' ay pinasimulan sa halaga 1.
  • Pagkatapos, fun_user() paraan ay ginagamit sa pamamagitan ng pagpasa sa variable “ako”.
  • Sa function na ito, kung inilapat ang kundisyon na naghihigpit sa pag-ulit sa 10 .
  • Sa wakas, ang mensahe “Welcome sa JavaScript” ay ipinapakita gamit ang “console.log()” paraan.

Output

Solusyon 2: Paggamit para sa Loop upang Resolbahin ang Maximum Call Stack Size na Lumampas sa Error

Upang malutas ang error, isang para sa loop ay ginagamit upang limitahan ang mga pag-ulit sa JavaScript. Halimbawa, ang code ay ibinigay sa ibaba.

Code

hayaan output = 0 ;
para sa ( hayaan ako = 5 ; i > 0 ; ako-- )
{
output += idagdag ( 1 , 1 ) ;
}
function idagdag ( a, b ) {
bumalik a + b;
}
console.log ( output ) ;

Sa code na ito:

  • Ang variable 'output' ay pinasimulan na may halagang 0.
  • Pagkatapos nito, ang isang para sa loop ay ginagamit upang magsagawa ng limang pag-ulit. Sa loop na ito, ang magdagdag () Ang pamamaraan ay tinatawag sa pamamagitan ng pagpasa ng halaga 1.
  • Ang paraan magdagdag () ibinabalik ang pagdaragdag ng dalawang variable a at b .
  • Sa huli, ang log() paraan ay ginagamit upang ipakita ang output sa console window.

Output

Nagbabalik ang output “10” sa pamamagitan ng paglutas sa error ng maximum na laki ng stack ng tawag sa JavaScript.

Konklusyon

Ang walang katapusang pagtawag ng recursive function ay nangyayari bilang ang 'Lumampas sa error ang maximum na laki ng stack ng tawag' sa JavaScript. Ipinapaliwanag ng artikulong ito ang mga dahilan kung bakit nagiging sanhi ng ganitong uri ng error. Pagkatapos, dalawang solusyon, kabilang ang 'para sa loop' at 'mga kondisyon na pahayag' ay ginagamit upang malutas ang error. Samakatuwid, ang mga function ng pagtawag ay pinaghihigpitan sa pamamagitan ng paggamit ng mga solusyong ito.