又弄错了 Kevin

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

var a = 2;
} test();

运行的结果是undifined.不是2.

js 的执行过程中,编辑器先以读入代码段,对代码段中的var 变量和function 定义进行“预解析”,预解析var 变量的时候,初始化为undefined

 

相当于一下代码:

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

  

原文地址:https://www.cnblogs.com/kfx2007/p/2444120.html