变量的声明提前:
    (1)使用var关键字声明的变量,会在所有代码执行之前被声明,但是!!!!不会被赋值(诡异之处)。
    (2)如果声明变量时,不使用var关键字,则变量不会被声明提前。

    1. <script>
    2. console.log(a);//结果是undefined
    3. var a=10;//使用了var关键字声明了变量,a会被提前声明,但是不会被赋值
    4. </script>

    函数的提前声明:
    (1)使用函数声明形式创建的函数function 函数(){}
    它会在所有的代码执行之前就被创建,所以我们可以在函数声明之前就来调用函数。

    (2)使用函数表达式创建的函数 var 函数名 function(){}
    不会被声明提前,所以不能在声明前调用。

    1. <script>
    2. fun();//函数被声明提前了,所以可以在函数声明之前就调用
    3. function fun(){
    4. console.log("我是用函数声明形式创建的函数,我会被声明提前");
    5. }
    6. </script>