当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript 变量作用域 代码分析

Javascript
一个qq菜单效果
一个用js实现过滤重复字符的函数
javascript 一个自定义长度的文本自动换行的函数
用js实现的一个根据内容自动生成表格的函数
图片格式的JavaScript和CSS速查手册
关于恒等于(===)和非恒等于(!==)
fix-ie5.js扩展在IE5下不能使用的几个方法
javascript实现上传图片前的预览(TX的面试题)
lib.utf.js
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
真见识了-全代码编写的图片
ASP中用Join和Array,可以加快字符连接速度的代码
javascript之弹出窗口居中的代码
识别操作系统是不是vista的js代码
js自动滑动+鼠标滑动区域
LBS blog sql注射漏洞[All version]-官方已有补丁
有一段有意思的代码-javascript现实多行信息
javascript在一段文字中的光标处插入其他文字
Google韩国首页图标动画效果
新发现原来documenet.URL也可以实现页面跳转

Javascript 中的 javascript 变量作用域 代码分析


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 392 ::
收藏到网摘: n/a

作用域(scope)是javascript中一项令人棘手的的特性。所有面向对象编程语言都有某种形式的作用域,不过和把这个概念放在什么上下文中有关。在javascript里,作用域是由函数划分的。 代码清单1-1 展示javascript的变量作用域的例子
//设置全局变量foo,并置为"test"
var foo = "test";
//在if块中
if(true){
//将foo置为'new test'
var foo = "new test";
}
//如我们所见,现在foo等于'new test'了
alert(foo == "new test");
//创建一个会修改变量foo的新函数
function test(){
var foo = "old test";
}
//然而在调用时,foo只在函数作用域内起作用
test();
//这里确认了foo 还是等于'new test'
alert(foo == "new test");
基于浏览器的javascript 的一个有趣的特性是,所有属于全局变量作用域的变量其实都是window对象的属性。
代码清单1-2 javascript中全局作用域和window对象
//一个全局作用域下的变量,存储了字符串'test'
var test = 'test';
//你可以看到我们的全局变量和window对象的test属性是一致的
alert(test == window.test)
最后如果变量没有显式定义,它就是全局定义的,虽然它可能只在这个函数作用域的范围内使用。
代码清单1-3 隐式全局作用域的变量声明
//一个设置了foo值的函数
function test(){
foo = "test";
}
//调用此函数以设置foo的值
test();
//我们发现foo现在是全局作用域下
alert(window.foo == "test");