在面试前端开发的时候遇到一个面试题,求解 var a =10; (function(){ console.log(a); var a=100; })

如题所述

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-08-14
函数内声明提前,赋值位置不变,大括号内console.log(a); var a=100; 可看做 var a;console.log(a); a=100; 只声明变量a,未赋值,故为undefined.

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网