スポンサーリンク

JavaScriptの動かないコード (初級編) カウンターのエラー


クイズ…下記のコードが意図した動作をしないのは,どうしてですか。(制限時間1分)

<input type="button" onClick="f1()" value="クリック">

<script language="JavaScript">

function f1()
{
   // 5回繰り返す
   for( i = 0; i < 5; i ++ )
   {
      f2();
   }
   alert( "5×5=25回,表示できました。" );
}

function f2()
{
   // これも5回繰り返す
   for( i = 0; i < 5; i ++ )
   {
      alert( i );
   }
}
	
</script>






発生する不具合

iがグローバルになっているので,25回ではなく5回で終わる。

修正案

f1(), f2()の内部で,それぞれ var i; するべき。

この問題のレベル

  • 変数
  • 関数
  • for文

を学習した時点で出題したい。