前端面试js题

var a=10;

(function(){

  console.log(a);

  var a=100;

})();

结果:输出undefined

解释:

function中有var a=100;

声明会提升到function最开头,但赋值发生在最后。

上面的代码等价于

var a=10;

(function(){

  var a;

  console.log(a);

  a=100;

})();

打印a的时候,a并没有在function内赋值,所以是undefined。

posted @ 2017-02-15 22:17  明烟雨任  阅读(199)  评论(0编辑  收藏  举报