//函数中声明的所有变量,无论是在哪里声明的,它整个函数中它们都是有定义的。这与C、C++和java不同,JavaScript没有块级作用域。
function test(o){
var i = 0;
if(typeof o == "object") {
var j = 0;
for(var k=0;k<10;k++){
document.write(k);
}
document.write(k);
}
document.write(j);
}
由于以上的程况,可能会造成以下的问题,所以建议将所有变量的声明集中起来放置在函数的开头
var scope = "global";
function f(){
alert(scope); //display "undefined" , not global
var scope = "local"; //variable initialized here , but defined everywhere
alert(scope); //display "local"
}
上面f()函数等价于:
function f(){
var scope;
alert(scope);
scope = "local";
alert(scope);
}