Javascript简明教程四 作用域

上面讲了变量的和函数基本使用方式.

但是变量的使用还有一些问题,如果不明白这些问题是很容易出错的.

1.如果声明在全局作用域内,则该变量为全局变量

var x=1;
function f(){
return x++;
}
f();
alert(x);

其结果为2

2.无论在哪里,不使用var定义而直接使用的,使用后该变量为全局变量

function f1(){x=1;}
function f2(){x++;}
f1();
f2();
f2();
alert(x);

其结果为3.

3.在函数或其它{}所围成的作用域中,以var声明的变量,其作用范围仅为{}之间(if等判断循环语句除外)

function f(){
var x=1;
}
f();
alert(x);

是得不到x的值的

但是

function f(){
	if(1==1){
		var x=1;
		alert(x);
	}
	alert(x);
}
f();

这里的第二个alert(x); 却可以得到x的值

4.内外作用域变量重名时,以当前作用域的变量优先

var x=100;
function f(){
	var x=1;
	alert(x);
}
f();
alert(x);

这段代码运行的结果是1,100

即重名时在函数内部只调用函数内部的变量

posted @ 2008-09-15 15:19  tiny羊  阅读(604)  评论(0)    收藏  举报