本帖最后由 Aaron 于 2012-10-21 00:53 编辑
要讨论变量的作用域,首先要清楚全局变量和局部变量的联系和区别:
全局变量:可以在脚本中的任何位置被调用,全局变量的作用域是当前文档中整个脚本区域。
局部变量:只能在此变量声明语句所属的函数内部使用,局部变量的作用域仅为该函数体。
声明变量时,要根据编程的目的决定将变量声明为全局变量还是局部变量。
一般而言,保存全局信息(如表格的原始大小、下拉框包含选项对应的字符串数组等)的变量需声明为全局变量,而保存临时信息(如待输出的格式字符串、数学运算中间变量等)的变量则声明为局部变量。
考察如下代码:[code]<! DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0//EN”
“http://www.w3.org/TR/REC-html140/strict.dtd”>
在上述警告框中单击“确定”后,关闭该警告框。单击“局部和全局变量测试”按钮,弹出警告框显示全局变量total 的值,如图所示。
代码载入后,add(num)函数响应body 元素对象的onload 事件处理程序,输出其函数体中定义的局部变量total 的值(整数200)。
单击“局部和全局变量测试”按钮,触发其onclick 事件处理程序运行与其关联的JavaScript 代码输出全局变量total 的值(整数100):javascript:alert('\n 全局变量 : \n\ntotal ='+total+'\n');
由上述结果可以看出,全局变量可作用在当前文档的JavaScript 脚本区域,而局部变量仅存在于其所属的函数体内。
实际应用中,应根据全局变量和局部变量的作用范围恰当定义变量,并尽量避免全局变量与局部变量同名,否则容易出现不易发现的变量调用错误。
同时注意应对代码中引入的任何变量均进行声明。