var variable = "top level " ;
function outer(){
alert(variable); // why does this alert returns undefined ??
var variable = " inside outer, outside inner";
function inner(){
alert(variable);
}
inner();
}
outer();
我从词法作用域的定义中了解到,函数可以访问其作用域内及以上的所有值,即在它们之前定义的所有值。那么为什么第一个警报返回 undefined ?