/***************************************
*其结果是打印出global
****************************************/
var a = 'global';
( test(){
write(a);
})();
/***************************************
*其结果是打印出undefined
****************************************/
var a = 'global';
( test(){
write(a);
var a = 'local';
})();
/***************************************
*其结果是打印出local global
****************************************/
var a = 'global';
( test(){
var a = 'local';
write(a+'\n');
})();
write(a+'\n');
由上面的例子可以看出,JS的作用域范围是函数体。当函数体内定义了一个和全局变量相同名字的局部变量时,全局变量就被局部变量覆盖了