函数中声明变量不用Var的情况

我们都知道函数中声明变量不用Var时这个变量会成为全局变量,但是并不是函数一开始执行就会把它变为全局变量,必须执行到这条语句。

看一段代码

function f(){
    alert(a);
    a = 3;
}
f(); //error: a is not defined

只有函数内部执行到a = 3时,a才会成为全局变量并且等于3,因为这个函数不可能执行到这句语句,所以error: a is not defined

再看一段代码

(function(){  

    bar();

    bar=function(){

            alert("1")}        

     }

)();

依旧是:Uncaught ReferenceError: bar is not defined

原文地址:https://www.cnblogs.com/ranyonsue/p/7451748.html