1. js的作用域是由函数划分的,而不是块儿
var too="test";
if(true)
{
//这是在块中的定义,此时还是全局变量
var too="new test";
}
alert(too=="new test"); //return true;
function test()
{
var too="old test"; //这是在函数中的定义,此时是局部变量
}
test();
alert(too=="new test"); //return true;too并没有改变
2. 所有属于全局作用域的变量都是window对象的属性
上面例子中第一行的too就相当于window.too
看下面的例子
function test()
{
too="test";
}
test();
alert(window.too="test");
是不是很奇怪,上面例子中函数中的too是局部变量,在这里就是全局变量了
注意下两个例子的区别,一个通过显示声明 var too;一个隐示声明too="test"。
也就是说没有显示定义的变量,它就是全局变量,虽然它可能只能在这个函数内使用。
作用域(scope)是JavaScript语言的基石之一,在构建复杂程序时也可能是最令人头痛的东西,只有真正的理解它,才能在实际的应用中游刃有余。
本文详细探讨了JavaScript作用域的概念,包括局部变量与全局变量的区别,并通过实例展示了如何在不同作用域中定义变量。同时解释了全局变量如何在函数内部被访问,以及显示声明与隐式声明变量的区别。
648

被折叠的 条评论
为什么被折叠?



