作为Js初学者而言,这是一个令我费解的问题,代码如下:var a = 'a';(function(){console.log(a);var a = 'b';})();如下是在chrome浏览器中调用后的结果:自己的理解是,Js在编译时会对变量和函数进行扫描,然后再按照顺序执行,在自执行函数内部,首先先声明var a,再按照顺序执行,所以上面的代码可以看成是如下执行顺序:var a = 'a';(function(){var a;console.log(a);var a = 'b';})();所以输出的是undefined不知道理解的是否正确。如果不正确的话,希望能够解释一下!
添加回答
举报
0/150
提交
取消