javascript 变量作用域 代码分析

 更新时间:2009年06月26日 13:20:55   作者:  
作用域(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");

相关文章

  • 深入理解MVC中的时间js格式化

    深入理解MVC中的时间js格式化

    下面小编就为大家带来一篇深入理解MVC中的时间js格式化。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • JavaScript 开发工具webstrom使用指南

    JavaScript 开发工具webstrom使用指南

    本文给大家推荐了一款非常热门的javascript开发工具webstrom,着重介绍了webstrom的特色功能、设置技巧、使用心得以及快捷键汇总,非常的全面。
    2014-12-12
  • js 全世界最短的IE浏览器判断代码

    js 全世界最短的IE浏览器判断代码

    以前最短的IE判定借助于IE不支持垂直制表符的特性搞出来的。
    2010-05-05
  • sogou地图API用法实例教程

    sogou地图API用法实例教程

    这篇文章主要介绍了C# sogou地图API用法,包括了各种常用属性的用法实例,需要的朋友可以参考下
    2014-09-09
  • JS模拟实现方法重载示例

    JS模拟实现方法重载示例

    这篇文章主要介绍了JS模拟实现方法重载,涉及js基于arguments实现重载的相关技巧,需要的朋友可以参考下
    2016-08-08
  • js正则表达式匹配数字字母下划线等

    js正则表达式匹配数字字母下划线等

    本文给大家分享的是使用正则表达式检测只含有汉字、数字、字母、下划线等示例,非常的简单实用,这里推荐给大家,有需要的小伙伴参考下。
    2015-04-04
  • 简单实现js菜单栏切换效果

    简单实现js菜单栏切换效果

    这篇文章主要教大家如何简单实现js菜单栏切换效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 一文彻底理解JS回调函数

    一文彻底理解JS回调函数

    回调函数是从一个叫函数式编程的编程范式中衍生出来的概念,简单来说,函数式编程就是使用函数作为变量,这篇文章主要介绍了一文彻底理解JS回调函数,需要的朋友可以参考下
    2022-12-12
  • js实现简单商品筛选功能

    js实现简单商品筛选功能

    这篇文章主要为大家详细介绍了js实现商品筛选功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • js遍历对象数组并获取对象相应的属性值实例代码

    js遍历对象数组并获取对象相应的属性值实例代码

    对于数组或者对象的遍历,筛选,提取等操作是前端开发中经常有的需求,下面这篇文章主要给大家介绍了关于js遍历对象数组并获取对象相应的属性值的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06

最新评论