JavaScript-da rekursiya bilan ishlash

Dasturlashda rekursiya deb ataladigan tushuncha mavjud - bu funktsiya o'zini o'zi chaqiradi. Keling, buni misol bilan ko'ramiz. Rekursiya yordamida 1 dan 10 gacha bo'lgan sonlarni chiqaramiz:

javascriptlet i = 1;

function func(){
  console.log(i);
  i++;
  
  if (i <= 10){
    func(); // bu yerda funktsiya o'zini o'zi chaqiradi
  }
}
func();

Keling, ushbu kod qanday ishlashini muhokama qilaylik.

Bizda global i o'zgaruvchisi va func funktsiyasi mavjud bo'lib, uning ichida konsolga i o'zgaruvchisining qiymati chiqariladi, so'ngra ++ amalga oshiriladi.

Agar bizning i o'zgaruvchimiz 10 dan kichik yoki teng bo'lsa, funktsiya qayta chaqiriladi. i o'zgaruvchi global bo'lgani uchun, har bir yangi funktsiya chaqiruvida unda oldingi chaqiruvda o'rnatilgan i o'zgaruvchisining qiymati bo'ladi.

Natijada, funktsiya i 10 dan katta bo'lgunga qadar o'zini o'zi chaqirishda davom etadi.

E'tiboringizni qaratamiz, bizning holatda funktsiyani if siz ishga tushirib bo'lmaydi - agar buni qilsak, cheksiz funktsiya chaqiruvlari paydo bo'ladi.