文档章节

javascript 变量作用域

p
 pengpj
发布于 2016/09/20 10:36
字数 426
阅读 14
收藏 0

javascript中的变量的作用域不同于java/c的变量规则。

1、在java/c中,如果有一个全局变量与一个局部变量重名,那么在局部变量的作用域中,局部变量会覆盖掉全局变量的值。当离开局部变量的作用域后,全局变量又会重新起作用。也就是说,当有局部变量存在时,程序中起作用的是局部变量的值。

而局部变量的作用域是:if / for / while ...等代码块的 {} 中,出了 {},局部变量就不存在了。(java中代码块 {}中的内嵌的局部变量不能相同。如:2个for中不能出现相同的 int i 的变量定义。)

public class Test {

    int i=5;
	
    public static void main(String[] args) {
		Test test = new Test();
		test.test();//局部变量覆盖全局变量
		test.test2();//没有局部变量,所以全局变量可以起作用。
	}
	//测试局部变量
	private void test(){
		int i=10;
		System.out.println(i);
	}
    //测试全局变量
	private void test2(){
		System.out.println(i);
	}
}

2、在javascript中,局部变量的作用域是在 function(){} 中的整个 {} 。只要是在方法中定义的变量,在整个方法中就可以使用,不管变量是定义的function内的任何地方。变量的作用域划分与java/c并不相同。当然,此时的局部变量同样会将方法外的变量覆盖。

<script type="text/javascript">
var i = 0;
function test(){
	alert(i); // 输出 undefined。因为在方法中已经对i进行了定义,而还没有赋值。
	for(var i=0; i<3; i++);
	alert(i); //输出 3 。因为在for中定义的var i是可以在整个方法 test 中起作用的。
}
</script>

 

© 著作权归作者所有

p
粉丝 1
博文 12
码字总数 6276
作品 0
广州
私信 提问
理解JavaScript的作用域

大纲 作用域 作用域嵌套与作用域链 查询异常 词法作用域(静态作用域) 函数作用域 全局作用域 块级作用域 变量提升机制 函数优先 作用域 是什么? 作用域是指程序源代码中定义变量的区域。 ...

梁凤波
05/10
0
0
JavaScript的变量作用域

在学习JavaScript的变量作用域之前,我们应当明确几点: JavaScript的变量作用域是基于其特有的作用域链的。 JavaScript没有块级作用域。 函数中声明的变量在整个函数中都有定义。 1、JavaS...

biGpython
2011/08/13
104
0
JavaScript作用域 - 学习Javascript的基石之一(转)

1.作用域 JavaScript的作用域与C、Java等语言不同,它不是以花括号包围的块级作用域,这个特性经常被大多数人忽视。例如下面代码,在大多数类C的语言中会出现变量未定义的错误,但在JavaScr...

顽Shi
2014/02/13
167
0
从JS的运行机制的角度谈谈作用域

JS中的作用域、闭包、this机制和原型往往是最难理解的概念之一。笔者将通过几篇文章和大家谈谈自己的理解,希望对大家的学习有一些帮助。如果有什么理解偏差的地方,希望大家可以评论指出,相...

不思
03/11
0
0
好程序员Web前端培训入门之JS基础知识梳理汇总

好程序员Web前端入门之JS基础知识梳理汇总,Web前端工程师是当前各大企业都比较稀缺的人才,薪资待遇和就业前景都很不错。不论是专业还是非专业,有基础亦或是无基础,都想通过学习Web前端实...

好程序员IT
03/27
12
0

没有更多内容

加载失败,请刷新页面

加载更多

DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
48分钟前
3
0
数据库中间件MyCat

什么是MyCat? 查看官网的介绍是这样说的 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵...

沉浮_
今天
4
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
今天
6
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
今天
5
0
Python机器学习之数据探索可视化库yellowbrick

背景介绍 从学sklearn时,除了算法的坎要过,还得学习matplotlib可视化,对我的实践应用而言,可视化更重要一些,然而matplotlib的易用性和美观性确实不敢恭维。陆续使用过plotly、seaborn,...

yeayee
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部