吉里吉里/tjs2解説
2重宣言
最終更新:
tjs2
-
view
同じ名前の変数を2回宣言することもできます
// iを2回宣言してみる
var i = 1;
System.inform(i);
var i = 2; // また宣言できる
System.inform(i);
変数iが再び宣言されると、それまでの変数iの中身は消えてしまいます
var i = 1;
System.inform(i);
var i; // 宣言だけをして初期化しない
System.inform(i);
2回目のSystem.inform(i);では何も表示されません
変数iには1が代入されていましたが、宣言される事でその中身が消されてしまったからです
変数iには1が代入されていましたが、宣言される事でその中身が消されてしまったからです
var i = 1;
System.inform(i); // 1が表示される
if(i == 1) {
var i = 2;
System.inform(i); // 2が表示される
}
System.inform(i); // 1が表示される
最初に変数iを宣言して1を代入しています
その次のSystem.inform(i);では当然1が表示されます
if文のブロックの中で再び変数iが宣言されていますが、これは最初に宣言されているグローバル変数iとは違う変数になります
次のSystem.inform(i);ではローカル変数iの中身の2が表示されます
同名の変数がある場合、グローバル変数よりもローカル変数の方が優先されます
ブロックを抜けるとローカル変数iは見えなくなるので、抜けた後ではグローバル変数iの中身の1が表示されます
その次のSystem.inform(i);では当然1が表示されます
if文のブロックの中で再び変数iが宣言されていますが、これは最初に宣言されているグローバル変数iとは違う変数になります
次のSystem.inform(i);ではローカル変数iの中身の2が表示されます
同名の変数がある場合、グローバル変数よりもローカル変数の方が優先されます
ブロックを抜けるとローカル変数iは見えなくなるので、抜けた後ではグローバル変数iの中身の1が表示されます