四个例子:
3.function a(x){return x * 2;} var a; alert(a); //function a(x){return x * 2;}
var a; fnction a(x){return x * 2;} alert(a); //fnction a(x){return x * 2;}
function a(x){return x * 2;} var a = 1; alert(a); //1
var a = 1; function a(x){return x * 2;} alert(a); //1
1.if(!("a" in window)){var a = 1;}alert(a); //undefined
变量声明提升+javascript中无块级作用域(即例中a的作用域为当前执行环境)。
2.var a = 1,b = function a(x){x && a(--x);}alert(a); //1
此时函数a只能在相应的函数体内调用,而当前执行环境的a是变量名,值为1。
3.function a(x){return x * 2;} var a; alert(a); //function a(x){return x * 2;}
var a; fnction a(x){return x * 2;} alert(a); //fnction a(x){return x * 2;}
function a(x){return x * 2;} var a = 1; alert(a); //1
var a = 1; function a(x){return x * 2;} alert(a); //1
4.function a(){alert(this);} a.call(null); //[object Window]
将this指向window对象