g1 = "外側のg1"; // g1, g2 ともにトップレベルなので var g2 = "外側のg2"; // いずれもグローバル変数 function foo() { var g1 = "fooでg1を設定"; // foo()関数内のみ有効 → 抜けると消える g2 = "fooでg2を設定"; // グローバル変数の上書き → 抜けても残る g3 = "fooでg3を設定"; // グローバル変数となる → 抜けても残る var g4 = "fooでg4を設定"; // 関数内のみ } foo(); console.log("g1="+g1); // => "g1=外側のg1" console.log("g2="+g2); // => "g2=fooでg2を設定" console.log("g3="+g3); // => "g3=fooでg3を設定" console.log("g4="+g4);