在函数(方法)中声明的所有变量,他们在整个函数中都有定义
var scope="abc";
function f() {
alert(scope); //显示undefine
var scope="local";
alert(scope); //显示local
}
原因:由于作用域规则的限制,输出的并不是abc。由于局部变量在真个函数体内都是有定义的,这就意味这在真个函数题中都隐藏了同名的全局变量
上面的例子和下面的效果相同:
function f() {
var scope;
alert(scope); //显示undefine 因为该变量虽然声明但没有初始化。
var scope="local";
alert(scope); //显示local
}