わからないこと
以下のJSのプログラムを出力した時の結果が理解できません。
実際の出力結果は以下のようになりますが、なぜプログラムの「ここから」「ここまで」の部分が複数回繰り返されるのかがいまいちよくわかりません。
var x = 0; var y = 0; function rec() { x += 1 console.log(`x: ${x}`) if(x === 3) { return "hogehoge" } console.log("hugahuga") var result = rec(); // ここから console.log(result) y += 1; console.log(`y: ${y}`) // ここまで return result; } rec();
x: 1 hugahuga x: 2 hugahuga x: 3 hogehoge y: 1 hogehoge y: 2
以下のように、再帰関数を変数に代入せずにそのままreturnすると上のような繰り返しは起こりません。
var x = 0; var y = 0; function rec() { x += 1 console.log(`x: ${x}`) if(x === 3) { return "hogehoge" } console.log("hugahuga") return rec(); } rec();
x: 1 hugahuga x: 2 hugahuga x: 3
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。