淘先锋技术网

首页 1 2 3 4 5 6 7

变量声明提升

1.考察this指向变量声明提升

var a = ;
function test(){
    a = ;
    alert(a);
    alert(this.a);
    var a;
    alert(a);
}
test();

正确答案是:100, 10, 100

2.考察变量声明提升

var a = ;
function test(){
    alert(a);
    var a = ;
    alert(a);
}
test();

答案:undefined,10

解析
上面的代码经过变量声明提升后等价于下面:

var a = ;
function test(){
    var a;
    alert(a);//undefined,,理所当然
    a = ;
    alert(a);//10,毋庸置疑
}
test();

变量声明var

1..考察var关键字

var a = ;
function test(){
    alert(a);
    a = ;
    alert(a);
}
test();
alert(a);

答案:100,10,10

4.