JavaScriptでの再帰処理

プログラミングには、 再帰という概念があります - これは関数が 自分自身を呼び出すことです。例を見てみましょう。 再帰を使って1から10までの数値を 出力してみます:

javascriptlet i = 1;

function func(){
  console.log(i);
  i++;
  
  if (i <= 10){
    func(); // ここで関数が自分自身を呼び出しています
  }
}
func();

このコードがどのように動作するか、議論してみましょう。

グローバル変数iと、 その内部でコンソールに変数iの内容を 出力した後、++を行う関数func があります。

もし変数iが10以下ならば、 関数は再び呼び出されます。 変数iはグローバルなので、 関数が新たに呼び出されるたびに、 前回の呼び出しで設定された変数iの値が 保持されます。

その結果、iが10を超えるまで、 関数は自分自身を呼び出し続けることになります。

このケースでは、ifなしで関数を 実行することはできないことに注意してください - もしそうしてしまうと、関数の無限呼び出しが 発生してしまいます。