javascript的几个作用域

for循环

for(var i=1; i<=3;i++)
{
}
alert(i) // 输出4 ;

这里i无论申明否均是全局变量。

将for循环放函数内

var i =0;
function test(){
for(var i=0;i<=10;i++)
{}
}
test();
alert(i)

// 如果没加var ,输出11,

//加了var ,输出0

这说明for循环的参数还是有作用域区别的

函数参数作用域

var a ;
function hello(a){
a = 2
}
hello();
alert(a);

// underfine

// 去掉参数a,则为2

说明了在函数内部变量,假如传递参数有此变量,不申明也是局部变量。均为局部作用域变量。

var a ;
function hello(a){
var a
alert(a)
}
hello(2); // 2
alert(a); //undefine

说明了函数参数有变量名,内部申明和不申明效果一致。

原文地址:https://www.cnblogs.com/bigdesign/p/4056440.html