JavaScript作用域之没有块级作用域

JavaScript作用域之没有块级作用域

 

与C、C++以及JAVA不同,Javscript没有块级作用域。函数中声明的所有变量,无论是在哪里声明的,在整个函数中它们都是有定义的。

 

上例子

 

例子一、下面代码中,变量i、j和k和作用域是相同的,它们三个在整个函数中都有定义。

 

 

输出结果为:k=0 k=1 k=2 k=3 k=4 k=5 k=6 k=7 k=8 k=9 +++k=10 j=0

 

这一规则可以产生惊人的结果,上代码

 

 

结果:第一个alert输出:underfined而不是global,第二个alert输出local

 

上面函数f与下面的函数等价:

 

function f(){
	var scope;
	alert(scope);
	var scope="local";
	alert(scope);		
}

 

如果你写成:

 

 

输出结果为:第一个alert为global,第二个为:local.

 

你可能感兴趣的:(javascript,web,闲谈,JavaScript,js,JavaScript基础)