変数のスコープ

変数を定義するときには,とにかく 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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください