一道面试题-变量声明提升~

//问打印结果
var
getName = function () { alert (4);};
function getName() { alert (5);}
console.log(getName);

结果是:4  

其实这道题可以翻译成

    var getName;
    function getName() { alert (5);}
    getName = function () { alert (4);};
    console.log(getName);// 4  把5 给覆盖了。

    //------------------------ 下面情况是打印5
    console.log(getName);
    var getName = function () { alert (4);};
    function getName() { alert (5);}
    //翻译如下------
    var getName;
    function getName() { alert (5);}
    console.log(getName);
    getName = function () { alert (4);};//4仍然会覆盖5 只不过打印语句提前打印了,

 

posted @ 2017-01-05 18:29  _白马非马  阅读(384)  评论(0)    收藏  举报