JS預(yù)編譯

1.JS運(yùn)行分為三步

  • 語法分析
  • 預(yù)編譯
  • 解釋執(zhí)行

2.預(yù)編譯時(shí)要做的事

創(chuàng)建對(duì)象,聲明函數(shù)和變量偏窝,但是沒有初始化行為(賦值)

<script>
var a = 1;
function test(a) {
    console.log(a);
    var b = 123;
    function funA() {}
    var funB = function() {}
}
var funC = function (){}
test(2);
</script>

對(duì)于以上例子,預(yù)編譯時(shí)執(zhí)行順序如下:
1.創(chuàng)建外層的全局對(duì)象(如window對(duì)象)

obj = {}

2.查找變量與函數(shù)的聲明

obj={
    a: undefined,
    test: undefined,
    funC: undefined
}

解釋執(zhí)行時(shí):變量和函數(shù)體賦值

obj = {
    a: 1,
    test: function(a) {
        console.log(a);
        var b = 123;
        function funA() {}
        var funB = function() {}
    },
    funC: function (){}
}

執(zhí)行函數(shù)test之前的預(yù)編譯順序:
1.創(chuàng)建AO活動(dòng)對(duì)象(Active Object)
2.函數(shù)與變量聲明

AO = {
    a:undefined,  //形參
    b:undefined,
    funA: undefined,
    funB: undefined
}

3.實(shí)參賦值給形參

AO = {
    a:2,  //實(shí)參
    b:undefined,
    funA: undefined,
    funB: undefined
}

解釋執(zhí)行時(shí):賦值

AO = {
    a:2,
    b:123,
    funA: function (){},
    funB: function (){}

3.注意事項(xiàng)

  • 預(yù)編譯不初始化變量武学,只有在解釋執(zhí)行階段才會(huì)進(jìn)行初始化
  • 匿名函數(shù)不參與預(yù)編譯
  • 函數(shù)聲明整體提升(無論函數(shù)調(diào)用和聲明的位置是前是后祭往,系統(tǒng)總會(huì)把函數(shù)聲明移到調(diào)用前面)
  • var聲明的變量被提升,let和const聲明的變量不會(huì)被提升
  • 一切聲明的全局變量火窒,全是window的屬性
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末硼补,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子熏矿,更是在濱河造成了極大的恐慌已骇,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件票编,死亡現(xiàn)場(chǎng)離奇詭異褪储,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)慧域,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門鲤竹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人吊趾,你說我怎么就攤上這事宛裕。” “怎么了论泛?”我有些...
    開封第一講書人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵揩尸,是天一觀的道長。 經(jīng)常有香客問我屁奏,道長岩榆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任坟瓢,我火速辦了婚禮勇边,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘折联。我一直安慰自己粒褒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開白布诚镰。 她就那樣靜靜地躺著奕坟,像睡著了一般祥款。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上月杉,一...
    開封第一講書人閱讀 51,541評(píng)論 1 305
  • 那天刃跛,我揣著相機(jī)與錄音,去河邊找鬼苛萎。 笑死桨昙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的腌歉。 我是一名探鬼主播蛙酪,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼究履!你這毒婦竟也來了滤否?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤最仑,失蹤者是張志新(化名)和其女友劉穎藐俺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泥彤,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡欲芹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吟吝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片菱父。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖剑逃,靈堂內(nèi)的尸體忽然破棺而出浙宜,到底是詐尸還是另有隱情,我是刑警寧澤蛹磺,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布粟瞬,位于F島的核電站,受9級(jí)特大地震影響萤捆,放射性物質(zhì)發(fā)生泄漏裙品。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一俗或、第九天 我趴在偏房一處隱蔽的房頂上張望市怎。 院中可真熱鬧,春花似錦辛慰、人聲如沸区匠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽驰弄。三九已至蝠筑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間揩懒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來泰國打工挽封, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留已球,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓辅愿,卻偏偏與公主長得像智亮,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子点待,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

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

  • JS三部曲:語法分析:js代碼的執(zhí)行是讀一行代碼執(zhí)行一行阔蛉,但在執(zhí)行之前系統(tǒng)會(huì)先對(duì)js進(jìn)行全面掃描檢查是否存在低級(jí)的...
    WangYatao閱讀 1,882評(píng)論 0 4
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,101評(píng)論 1 32
  • js中有暗示全局變量:任何變量如果未經(jīng)聲明就賦值莉擒,此變量就為全局對(duì)象所有(不管在哪里)蚪拦。 window就是全局的域...
    guyigg閱讀 552評(píng)論 0 5
  • 預(yù)編譯前奏 1.imply global 暗示全局變量:即任何變量未經(jīng)聲明就賦值,則此變量就為全局對(duì)象(windo...
    branv閱讀 282評(píng)論 0 0
  • 多久抓艳,再?zèng)]有這樣寫日記的情懷……多久苗踪,感覺自己感性的文字也干涸颠区!卻沒有因?yàn)槲淖肿兊酶砂T理性,思維心靈也變得理...
    穎子加油閱讀 127評(píng)論 0 0