Грешка прекорачења максималне величине стека позива у ЈаваСцрипту | Објашњено

Greska Prekoracena Maksimalne Velicine Steka Poziva U Javascriptu Objasneno



Рекурзивне функције су функције које позивају метод унутар другог метода. Међутим, бесконачна рекурзија узрокује грешку у величини стека. До грешке у величини стека долази због чекања многих захтева. Овај проблем се јавља приликом позивања саме функције. Разматрајући то, овај чланак објашњава да максимална величина стека позива премашује грешку у ЈаваСцрипт-у. Штавише, решење је такође обезбеђено за решавање грешке.

Чланак нам служи на следећи начин:







  • Грешка прекорачења максималне величине стека позива у ЈаваСцрипт-у
  • Коришћење иф услова за решавање грешке прекорачења максималне величине стека позива
  • Коришћење петље фор за решавање грешке прекорачења максималне величине стека позива.

Грешка прекорачења максималне величине стека позива у ЈаваСцрипт-у

Грешка прекорачења величине стека јавља се када корисник позове рекурзивну функцију. Ова врста грешке настаје услед сталног позивања методе. Тхе фун_усер() се користи као рекурзивни позив унутар функције фун_усер() у ЈаваСцрипт-у да бисте генерисали грешку у прозору конзоле.



Код



цонсоле.лог ( „Премашена је максимална величина стека позива“ ) ;
фун_усер ( ) ;
функција фун_усер ( )
{
фун_усер ( ) ;
}





У овом коду, „грешка прекорачења максималне величине стека позива“ се генерише позивом методе “фун_усер()” унутар функције.



Код приказује грешку као „РангеЕррор: Максимална величина стека позива је премашена.“

Постоји много начина да се ова грешка реши, као нпр за петљу и условни искази , који се може користити за ограничавање позива функције.

Решење 1: Коришћење услова иф за решавање грешке прекорачења максималне величине стека позива

Да би се решила грешка, примењује се услов ако да ограничи величину стека у ЈаваСцрипт-у. На пример, код је дат испод.

Код

био и = 1 ;
фун_усер ( и ) ;
функција фун_усер ( и ) {
ако ( и < = 10 )
{
цонсоле.лог ( 'Добро дошли у ЈаваСцрипт' ) ;
и =и+ 1 ;
фун_усер ( и ) ;
} }

Опис кода је следећи:

  • Прво, варијабла 'ја' се иницијализује са вредношћу 1.
  • Након тога, фун_усер() метода се користи преношењем променљиве “и”.
  • У овој функцији, ако се примени услов који ограничава итерацију на 10 .
  • Коначно, порука „Добро дошли у ЈаваСцрипт“ се приказује помоћу “цонсоле.лог()” методом.

Излаз

Решење 2: Коришћење за петље за решавање грешке прекорачења максималне величине стека позива

Да би се решила грешка, користи се фор петља за ограничавање итерација у ЈаваСцрипт-у. На пример, код је дат испод.

Код

дозволити излаз = 0 ;
за ( дозволити и = 5 ; и > 0 ; ја-- )
{
излаз += додај ( 1 , 1 ) ;
}
функција додати ( а, б ) {
повратак а + б;
}
цонсоле.лог ( излаз ) ;

У овом коду:

  • Променљива 'излаз' је иницијализован са вредношћу 0.
  • Након тога, фор петља се користи за извођење пет итерација. У овој петљи, додати() метода се позива преношењем вредности 1.
  • Метода додати() враћа сабирање две променљиве а и б .
  • На крају, Пријава() метода се користи за приказ излаза у прозору конзоле.

Излаз

Излаз се враћа “10” решавањем грешке максималне величине стека позива у ЈаваСцрипт-у.

Закључак

Бесконачно позивање рекурзивних функција јавља се као „грешка прекорачења максималне величине стека позива“ у ЈаваСцрипт-у. Овај чланак објашњава разлоге за изазивање ове врсте грешке. Након тога, два решења, укључујући 'за петљу' и 'условне изјаве' се користе за отклањање грешке. Дакле, функције позивања су ограничене употребом ових решења.