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

//问打印结果
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 只不过打印语句提前打印了,
原文地址:https://www.cnblogs.com/WhiteHorseIsNotHorse/p/6253507.html