JavaScript-da rekursiýa bilen işlemek

Programmirlemede şeýle bir düşünje bar, rekursiýa - bu funksiýanyň öz-özüni çagyrmagydyr. Geliň mysal üçin seredeliň. Rekursiýa ýardamynda 1 -dan 10-a çenli sanlary çap edeliň:

javascriptlet i = 1;

function func(){
  console.log(i);
  i++;
  
  if (i <= 10){
    func(); // şu ýerde funksiýa öz-özüni çagyryar
  }
}
func();

Geliň bu kodyň nähili işleýändigini gürrüň edeliň.

Bizde global üýtgeýji i we func funksiýasy bar, onuň içinde konsola i üýtgeýjisiniň mazmuny çap edilýär, soňra bolsa ++ amal ýerine ýetirilýär.

Eger bizim i üýtgeýjimiz 10-dan kiçi ýa-da deň bolsa, onda funksiýa gaýtadan çagyrylýar. i üýtgeýjisi global bolany üçin, her bir täze funksiýa çagyrylyşynda onda öňki çagyrylyşda bellelenen i üýtgeýjisiniň bahasy boljak.

Şeýlelikde, funksiýa i 10-dan uly bolýança öz-özüni çagyrar.

Üns beriň, bizim ýagdaýymyzda funksiýany if sözsüz işletip bolmaýar - eger muny etsek, çäksiz funksiýa çagyrmalar ýüze çykar.