1. 程式人生 > 其它 >變數或函式 提升

變數或函式 提升

  1. 變數提升
    console.log(fn) //輸出:undefined
    var fn = 12
    變數提升,是把變數提升提到函式上邊,注意:變數提升 只提升變數的宣告,不會把賦值也提升上來

    所以,正兒八經的情況是這樣的...
     var fn;  // 先宣告
     console.log(fn)
     fn = 12  //執行時才賦值

  2. 函式提升(兩種方式:1. 函式表示式2.函式宣告式)

    1.函式表示式提升
    console.log(fn()) //輸出:TypeError: fn is not a function
     var fn = function(){
     console.log(2)
     }
    函式表示式方式提升和普通變數提升一樣,只宣告不賦值

    2.函式宣告式提升
    console.log(fn()) //輸出:1 
    //函式宣告
    function fn(){ 
    console.log(1) 
    }
    函式宣告方式提升,會提升到作用域最前邊,並且將宣告內容一起提升到最上邊 總結:   1. 所有的宣告都會提升到作用域的最頂上去
      2. 同一個變數只會宣告一次,其他的會被忽略掉或者覆蓋掉
    3. 函式宣告的優先順序高於變數宣告的優先順序,並且函式宣告和函式定義的部分一起被提升