思考:

notice:在写JS代码的时候,有两种写法,一种是函数表达式,另外一种是函数声明方式。我们需要重点注意的是,只有函数声明形式才能被提升。

function hoistFunction() {

    foo(); // 2

    var foo = function() {
        console.log(1);
    };

    function foo() {
        console.log(2);
    }

}

hoistFunction();

  

function hoistFunction() {

    var foo = function() {
        console.log(1);
    };

    function foo() {
        console.log(2);
    }

    foo(); // 1
}

hoistFunction();

  

function hoistFunction() {
 
    foo(); // 2

    var foo = function() {
        console.log(1);
    };

    function foo() {
        console.log(2);
    }
	
    foo(); // 1

}

hoistFunction();

  

参考文章

参考函数提升一文