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
说明了函数参数有变量名,内部申明和不申明效果一致。