Rekursio JavaScriptissä

Ohjelmoinnissa on käsite nimeltä rekursio - se tarkoittaa tilannetta, jossa funktio kutsuu itseään. Katsotaanpa esimerkkiä. Tulostetaan rekursion avulla numerot 1 10:een asti:

javascriptlet i = 1;

function func(){
  console.log(i);
  i++;
  
  if (i <= 10){
    func(); // tässä funktio kutsuu itseään
  }
}
func();

Keskustellaan kuinka tämä koodi toimii.

Meillä on globaali muuttuja i ja funktio func, jonka sisällä konsoliin tulostetaan muuttujan i sisältö, jonka jälkeen tehdään ++.

Jos muuttujamme i on pienempi tai yhtä suuri kuin 10, funktiota kutsutaan uudelleen. Koska muuttuja i on globaali, jokaisessa funktion uudessa kutsussa siinä on edellisellä kerralla asetettu muuttujan i arvo.

Käy niin, että funktio kutsuu itseään kunnes i tulee suuremmaksi kuin 10.

Huomioi, että meidän tapauksessamme funktiota ei voi käynnistää ilman if - jos näin tehdään, se johtaa äärettömään funktiokutsujen ketjuun.