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

JavaScript的局部跟全局变量

2012-11-08 
JavaScript的局部和全局变量一直以为自己对JavaScript已经很精通了,这次却犯了一个低级错误。这个错误带来

JavaScript的局部和全局变量
一直以为自己对JavaScript已经很精通了,这次却犯了一个低级错误。这个错误带来的后果就是:如果你最近用浏览器上小百合的话,发现点击左边导航菜单的链接都会打开新窗口。。。其次的后果是害我调试了一下午加晚上。。。
先是这样的,为了DOM设置属性的方便,我自己写了个方法,省得每次都setAttribute:



很重要的一点是注意变量是否是在其所属范围的开始处声明的。有时这会导致意想不到的情况
tweak(); var aNumber = 100; function tweak()  { var newThing = 0;  // 显式声明 newThing 变量。       // 本语句将未定义的变量赋给 newThing,因为已有名为 aNumber 的局部变量。     newThing = aNumber;       //下一条语句将值 42 赋给局部的 aNumber。aNumber = 42; if (false)  {     var aNumber;  // 该语句永远不会执行。     aNumber = 123;  //  该语句永远不会执行。     }  // 条件语句结束。   }  // 该函数定义结束。

当 JScript 运行函数时,首先查找所有的变量声明,
var someVariable;
并以未定义的初始值创建变量。如果变量被声明时有值,
var someVariable = “something”;
那么该变量仍以未定义的值初始化,并且只有在运行了声明行时才被声明值取代,假如曾经被声明过。
JScript 在运行代码前处理变量声明,所以声明是位于一个条件块中还是其他某些结构中无关紧要。JScript 找到所有的变量后立即运行函数中的代码。如果变量是在函数中显式声明的 — 也就是说,如果它出现于赋值表达式的左边但没有用 var 声明 — 那么将把它创建为全局变量。

热点排行