首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JavaScript中的变量宣言与作用域

2012-06-29 
JavaScript中的变量声明与作用域使用关键字var 声明变量,例如:var a hello world也可以同时声明多个

JavaScript中的变量声明与作用域

    使用关键字var 声明变量,例如:
    var a = "hello world";
    也可以同时声明多个变量:
    var a, b, c;
    声明,但未指定初始值的变量,初始值为undefined
    JavaScript的变量可以指向任何类型
    由var声明的变量是永久的,不能用delete删除
    可以使用var重复多次的声明同一变量,其中的初始化被认为是赋值操作
    如果未以var关键字来声明变量,则会隐式的声明一个变量;一个隐式声明的变量是全局的
    JavaScript没有块作用域,因此函数中声明的所有变量都有同样的作用域,例如:
    function test(o){       var i = 0;       if( typeof o == "object"){             var j = 0;             for(var k = 0;k<10;k++){                      document.write(k);             }             document.write(k);        }        document.write(j);}
    JavaScript有自动垃圾回收系统,不用考虑对象的释放。?
    JavaScript存在一个全局对象。当JavaScript解释器开始运行时,它就会创建一个全局对象。所有的全局变量都可以认为是这个对象的属性。
    局部变量也是一个对象的属性,称之为调用对象。
    JavaScript每次执行一个函数时都会创建一个执行环境。JavaScript可以同时有多个执行环境,例如每个独立的浏览窗口或同一个窗口的多个帧(Frame)。这时全局对象就不完全是全局了的,它是属性每个独立的执行环境中的全局变量。但是他们之间可以通过,例如 parent.frames[1] 来引用另一帧,然后引用其中声明的变量,例如:
    parent.frames[1].x

作用域链

?

每个JavaScript执行环境都有一个与它关联的作用域链。这个作用域链是一个对象列表或对象链。当JavaScript代码需要查询某个变量(x)的值时,它就开始查找链上的每个对象,看看它是否有这个变量;否则就继续往上,直到查找到这个变量:

?

?JavaScript中的变量宣言与作用域

热点排行
Bad Request.