1.
var a = 10; function test() { a = 100; console.log(a); console.log(this.a); var a; console.log(a); } test();//100 10 100
=>
var a = 10;//全局 function test() { var a;//变量提升 a = 100;//局部 console.log(a);//局部 console.log(this.a);//this指向全局window console.log(a);//局部 } test();//100 10 100
2.
var a = 100; function test() { console.log(a); var a = 10; console.log(a); } test();//undefined 10
=>
var a = 100; function test() { var a;//变量提升 console.log(a); a = 10; console.log(a); } test();//undefined 10
3.
var a = 100; function test() { console.log(a); a = 10; console.log(a); } test(); console.log(a); //100 10 10
=>
var a = 100; function test() { console.log(a);//全局 a = 10;//全局 console.log(a);//全局 } test(); console.log(a); //100 10 10