JavaScript'те рекурсия менен иштөө
Программалоодо рекурсия деген түшүнүк бар -
бул функция өзүн-өзү чакырган учур. Келгиле,
мисал аркылуу көрөлү. Рекурсияны колдонуп,
1дон 10го чейинки сандарды чыгаралы:
let i = 1;
function func(){
console.log(i);
i++;
if (i <= 10){
func(); // бул жерде функция өзүн-өзү чакырат
}
}
func();
Келгиле, бул код кандайча иштээрин талкуулайлы.
Бизде i деген глобалдык өзгөрмө
жана func деген функция бар, анын ичинде
консольго i өзгөрмөсүнүн мааниси
чыгарылат, андан кийин ++ операциясы жасалат.
Эгерде биздин i өзгөрмөбүз 10дон
кичине же ага барабар болсо, анда функция кайрадан
чакырылат. i өзгөрмөсү - глобалдык болгондуктан,
ар бир жаңы функция чакыруусунда анда мурунку чакырууда
берилген i өзгөрмөсүнүн мааниси болот.
Натыйжада, функция i 10дон чоң болгонго
чейин өзүн-өзү чакырып турат.
Эске алыныз, биздин учурда функцияны if
сартыз иштете албайбыз - эгерде муну жасасак,
анда функциялардын чексиз чакырылышына алып келет.