码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-04-14 23:22:30      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:声明   javascript   局部变量   全局变量   var   

最近见群里有一道关于面试的试题,考察的关于全局变量和局部变量的基础知识:
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创建的隐含的全局变量(尽管在函数内部穿件的),可以删除;

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

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

标签:声明   javascript   局部变量   全局变量   var   

原文地址:http://blog.csdn.net/lfcss/article/details/45048447

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!