| TOP /JavaScript | 変数のスコープ |
|---|
よくある疑問に変数はvarで宣言した方が良いのか?しなくても良いのか?
グローバル変数とローカル変数
<script language="JavaScript"><!--
var abc=123;
function func1(){
alert(abc);
}
function func2(){
var abc=321;
alert(abc);
}
function func3(){
abc=12345;
alert(abc);
}
function func4(){
alert(abc);
if(!abc){
var abc=54321;
}
}
// --></script>
初めに変数abcを明示的(varで宣言)に宣言
次にfunc4()のように関数内のどこかで明示的に変数が宣言されている場合
初めに明示的に宣言された変数を検索します。
しかし値が代入されるのはその行が実行された時なので変数abcの値は未定義になります。