ホーム » T-Saitoh » 変数のスコープと寿命

システム

最近の投稿

アーカイブ

カテゴリー

変数のスコープと寿命

処理を2重で繰り返す場合、以下のようなプログラムを書くだろう。

var x , y ;
for( x = 0 ; x < 3 ; x++ ) {
   for( y = 0 ; y < 2 ; y++ ) {
      document.write( "A" ) ;
   }  
}

でも、大きなプログラムを書いていると、変数名をつけるのに悩む場合もある。

var x ;
for( x = 0 ; x < 3 ; x++ ) {
   for( x = 0 ; x < 2 ; x++ ) {
      document.write( "A" ) ;
   }
}

かといって、このプログラムは、3✕2回のループにはならない。
同じ名前でも、別な変数を作ることができる。

for( var x = 0 ; x < 3 ; x++ ) {
   :
}

for文のカッコの先頭(初期化式)の部分には、変数宣言を書いてもいい。この変数は、for 文が終わるまでの間有効となる。

forの初期化式の時点で x が作られ、for 文が終わると消える。

つまり、変数が使える範囲(スコープ)は、for文の中だけ。寿命はfor文に入って抜けるまで。
これを使うと、前述のプログラムは、

for( var x = 0 ; x < 3 ; x++ ) {
   document.write( "#A x=" + x + "<br />\n" ) ;
   for( var x = 0 ; x < 2 ; x++ ) {
      document.write( "##B x=" + x + "<br />\n"
   }
   document.write( "#C x=" + x + "<br />\n"\n" ) ;
}
実行結果
#A x=0
##B x=0
##B x=1
#C x=0    ←内側のforが終わり、内側のxは消えて、外側のxが見える
#A x=1
##B x=0
##B x=1
#C x=1
#A x=2
##B x=0
##B x=1
#C x=2

Google 検索

My Google   Yahoo

Microsoft

ファンサイト