ホーム » 「スコープ」タグがついた投稿

タグアーカイブ: スコープ

システム

最近の投稿

  • この一週間の必需品
    6/22頃からの風邪の症状。鼻水と喉の痛みがあって、鼻スプレーと喉スプレーでだましだましの2週間。 […]
  • あづぃ…
    2F廊下温度35℃、WBGT30℃越え。 […]
  • gemini-cli 便利
    Gemini をコマンドラインから使えるツール gemini-cli が公開されている。 […]
  • LINE bot が動いていない… 月当たり最大数オーバー
    我が家では、以前より 自宅専用の LINE bot を動かしていて、サーバからの通知に使っていた。 […]
  • rkhunter の設定
    卒研のセキュリティの説明の中で rkhunter を紹介。説明してたら、自宅サーバにはサーバ機以降後に […]

アーカイブ

カテゴリー

変数のスコープと寿命

処理を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

ファンサイト