在javascript中关于局部变量和全局变量简析

页面导航:首页 > 网络编程 > JavaScript > 在javascript中关于局部变量和全局变量简析

在javascript中关于局部变量和全局变量简析

来源: 作者: 时间:2016-02-02 09:58 【

最近见群里有一道关于面试的试题,考察的关于全局变量和局部变量的基础知识: fun foo(){ var a = b = 0;} 让选择a和b的值分别为多少,或许不仔细看,我们很可能把a和b都当成了局部变量,

最近见群里有一道关于面试的试题,考察的关于全局变量和局部变量的基础知识:
fun foo(){
var a = b = 0;

}
让选择a和b的值分别为多少,或许不仔细看,我们很可能把a和b都当成了局部变量,值为0,其实a是局部变量,b是全局变量,这主要是由于从右至左的操作符优先级,跟我们平时在的css选择器在中解析的优先级别一样,优先级别较高的是表达式b=0,此时b未经声明,表达式的返回值为0,它被赋给var声明的局部变量a,如下表示:
var a = (b = 0);
如果对链式赋值的所有变量都进行了声明,就不会创建出不期望的全局变量,例如
function foo(){
var a,b;
a= b =0; //二者均为局部变量
}

使用var创建的全局变量(这类变量在函数外部创建)不能删除;
不使用var创建的隐含的全局变量(尽管在函数内部穿件的),可以删除;

虽然变量声明可以在文档任意位置,但是良好的习惯应该是在所有Script代码之前声明变量,并对变量进行初始化赋值。在函数内部也是先声明变量,然后再引用。
变量查询中,访问局部变量要比全局变量更快,因为不需要向上搜索作用域链,局部变量在函数执行完毕的时候会自动清除销毁,不占用内存,而全部变量只有窗口页面关闭的时候,才自动销毁,所以我们平时尽量用局部变量,减少全局变量,减少环境污染

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<