函数声明vs 函数表达式

        var a = 10;

        function fn() { //函数申明
            //var a;
            alert(a);
            var a = 100;    //申明被提前到了当前作用域的最开始
            alert(a);
        }

        //fn();   //undefined 100

        /*
        * var a;
        *
        * fn;
        *
        * a = 10;
        *
        * fn();
        * */
        alert(fn1); //undefined

        //函数表达式,申明一个变量fn1,赋值了一个函数
        var fn1 = function() {
            alert(1);
        }

        alert(fn2); //function

        function fn2() {
            alert(2);
        }
原文地址:https://www.cnblogs.com/xiayedexin/p/5194738.html