変数を定義するときには,とにかく var をつけておくのが良さそうだ。
- 関数の外で定義した変数はグローバル
- 関数の中で var を使って定義した変数はその関数内のローカル
- 関数の中で var を使わずに定義した変数はグローバル
関数の中で var を使った場合:
var v1 = "global v1";
function foo() {
var v1 = "local v1";
document.write("in function: ", v1, "<br>"); // => "local v1"
return "function called.";
}
document.write("before function call: ", v1, "<br>"); // => "global v1"
foo();
document.write("avter function call: ", v1, "<br>"); // => "global v1"
before function call: global v1 in function: local v1 avter function call: global v1
関数の中で var を使わなかった場合:
var v2 = "global v2";
function bar() {
v2 = "local v2";
document.write("in function: ", v2, "<br>");
return "function called.";
}
document.write("before function call: ", v2, "<br>");
bar();
document.write("avter function call: ", v2, "<br>");
before function call: global v2 in function: local v2 avter function call: local v2