關(guān)于JS預(yù)編譯小結(jié)

關(guān)于JS預(yù)編譯過程理解械馆。

看一到常見面試題师坎,請問下面輸出的值是多少耍攘?
        function fn(a, c) {
            console.log(a) 
            var a = 123 
            console.log(a)
            console.log(c) 
            function a() { }
            if (false) {
                var d = 678
            }
            console.log(d) 
            console.log(b) 
            var b = function () { }
            console.log(b) 
            function c() { }
            console.log(c) 
        }
        fn(1,2)

正確答案:

        function fn(a, c) {
            console.log(a) //function a() { }
            var a = 123 
            console.log(a) //123
            console.log(c) //function c() { }
            function a() { }
            if (false) {
                var d = 678
            }
            console.log(d) // undefined
            console.log(b) // undefined
            var b = function () { }
            console.log(b) //function () { }
            function c() { }
            console.log(c) //  function c() { }
        }
        fn(1,2)
不知道各位有沒有答對呢榕栏?接下來看一下JS在預(yù)編譯階段都做了些啥,你就能理解為啥是這些輸出了蕾各!
1. js會創(chuàng)建ao對象(供js引擎自己去訪問的)
2. 找到形參和變量的申明并且會賦值undefined
3. 實參和形參相統(tǒng)一
4. 找函數(shù)聲明 會覆蓋變量的聲明

接下來我們看一下這個函數(shù)作用域生成的ao對象的過程

//js創(chuàng)建ao對象
ao {

}
//找到形參和變量的申明
ao {
  a :undefined
  c : undefined
  d : undefined
  b : undefined
}
//實參和形參相統(tǒng)一
ao {
  a :1
  c :   2
  d : undefined
  b : undefined
}
//找函數(shù)聲明 會覆蓋變量的聲明
ao {
  a :function a() { }
  c :   function c() { }
  d : undefined
  b : undefined
}

到此為止預(yù)編譯階段結(jié)束臼膏,之后js會逐行解釋執(zhí)行。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末示损,一起剝皮案震驚了整個濱河市渗磅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌检访,老刑警劉巖始鱼,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異脆贵,居然都是意外死亡医清,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進(jìn)店門卖氨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來会烙,“玉大人,你說我怎么就攤上這事筒捺“啬澹” “怎么了?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵系吭,是天一觀的道長五嫂。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么沃缘? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任躯枢,我火速辦了婚禮,結(jié)果婚禮上槐臀,老公的妹妹穿的比我還像新娘锄蹂。我一直安慰自己,他們只是感情好水慨,可當(dāng)我...
    茶點故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布得糜。 她就那樣靜靜地躺著,像睡著了一般讥巡。 火紅的嫁衣襯著肌膚如雪掀亩。 梳的紋絲不亂的頭發(fā)上舔哪,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天欢顷,我揣著相機(jī)與錄音,去河邊找鬼捉蚤。 笑死抬驴,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缆巧。 我是一名探鬼主播布持,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼陕悬!你這毒婦竟也來了题暖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤捉超,失蹤者是張志新(化名)和其女友劉穎胧卤,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拼岳,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡枝誊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了惜纸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叶撒。...
    茶點故事閱讀 40,928評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖耐版,靈堂內(nèi)的尸體忽然破棺而出祠够,到底是詐尸還是另有隱情,我是刑警寧澤粪牲,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布哪审,位于F島的核電站,受9級特大地震影響虑瀑,放射性物質(zhì)發(fā)生泄漏湿滓。R本人自食惡果不足惜滴须,卻給世界環(huán)境...
    茶點故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望叽奥。 院中可真熱鬧扔水,春花似錦、人聲如沸朝氓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赵哲。三九已至待德,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間枫夺,已是汗流浹背将宪。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留橡庞,地道東北人较坛。 一個月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子敷待,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內(nèi)容