javascriptの基本その2(グローバル変数)
引き続き、この本で勉強。
これまた大事な事だが、知らんかった。一時変数の扱いについて。
{ var tmp = 0; for(var i=0; i<=10; i++) tmp += i; alert(tmp); } alert(tmp);
javaとかやってると、中括弧でくくられた内部はローカル変数扱いになるから、このプログラムはエラーになるんだろうと思いきや。。
javascriptではエラーにならない。javascriptの場合、関数単位でローカル変数になるそうな。ちなみにiもグローバル変数です。
よって、以下のように記述するとアラート文はエラーになるのだ。
new function(){ var tmp = 0; for(var i=0; i<=10; i++) tmp += i; alert(tmp); } alert(tmp);
気をつけないとtmpがグローバル変数扱いになってしまい、予期せぬ動きを引き起こす可能性あり。うーむ、しかしちょっと分かりにくいな。