js作用域

来源:互联网 发布:绵阳长虹网络公司地址 编辑:程序博客网 时间:2024/04/19 22:55

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语言的基石之一,在构建复杂程序时也可能是最令人头痛的东西,只有真正的理解它,才能在实际的应用中游刃有余。

原创粉丝点击