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 дан катта бўлгунча ўзини ўзи чақириб туради.
Эътибор бering, бизнинг ҳолимизда функцияни
if шартисиз ишга тушуриб бўлмайди - агар бу амалга оширилса,
функцияларнинг чексиз чақирилиши вужудга келади.