javascript 变量作用域 代码分析
                        
                            时间:2021-07-01 10:21:17
                            帮助过:12人阅读
							                        
                     
                    
                    
            代码清单1-1 展示javascript的变量作用域的例子 
//设置全局变量foo,并置为"test" 
var foo = "test"; 
//在if块中 
if(true){ 
//将foo置为'new test' 
var foo = "new test"; 
} 
//如我们所见,现在foo等于'new test'了 
alert(foo == "new test"); 
//创建一个会修改变量foo的新函数 
function test(){ 
var foo = "old test"; 
} 
//然而在调用时,foo只在函数作用域内起作用 
test(); 
//这里确认了foo 还是等于'new test' 
alert(foo == "new test"); 
基于浏览器的javascript 的一个有趣的特性是,所有属于全局变量作用域的变量其实都是window对象的属性。 
代码清单1-2 javascript中全局作用域和window对象 
//一个全局作用域下的变量,存储了字符串'test' 
var test = 'test'; 
//你可以看到我们的全局变量和window对象的test属性是一致的 
alert(test == window.test) 
最后如果变量没有显式定义,它就是全局定义的,虽然它可能只在这个函数作用域的范围内使用。 
代码清单1-3 隐式全局作用域的变量声明 
//一个设置了foo值的函数 
function test(){ 
foo = "test"; 
} 
//调用此函数以设置foo的值 
test(); 
//我们发现foo现在是全局作用域下 
alert(window.foo == "test");