關於方法名和變量重名的問題

如下總結僅我的想法,有誤請指出javascript

一、普通狀況

//----------------------------------------
    var b = 10;
    function b() {
    
    }
    console.log(b);//輸出10
    //----------------------------------------
    var a;
    function a(){

    }
    console.log(a);//輸出a方法
    //----------------------------------------
    function c(){

    }
    var c;
    console.log(c);//輸出c方法
複製代碼
  • 總結 1: 不只變量聲明提高,函數聲明也會提高,在變量不賦值的狀況下,函數聲明高於變量聲明

二、特殊狀況(自執行)

var b = 10;
(function b() {
   b = 20 //這個時候的b就已是b函數了,而不是外面的b
   console.log(b); //輸出函數b
})()
console.log(b);//輸出10
複製代碼
  • 總結 2:也遵循總結1,自執行函數內部有本身的做用域,(在執行的時候,給本身賦值沒有效果/b=20未生效)
相關文章
相關標籤/搜索