js的執(zhí)行過(guò)程

JavaScript是解釋型語(yǔ)言她按,也就是說(shuō)渠旁,我們的js代碼會(huì)通過(guò)一個(gè)解釋器來(lái)進(jìn)行解釋執(zhí)行风响,這個(gè)解釋器我們稱(chēng)為js引擎嗜浮,因?yàn)槲覀兊臑g覽器也能執(zhí)行js羡亩,所以瀏覽器里面也有js引擎,不同的瀏覽器有不同的js引擎危融,比如chrome的V8畏铆,safari的webkit,IE瀏覽器的Trident等吉殃。

js引擎的執(zhí)行需要走三個(gè)步驟辞居,第一是進(jìn)行語(yǔ)法分析,這個(gè)比較簡(jiǎn)單蛋勺,就是看你的代碼格式是不是正確的瓦灶,比如,如果你少了個(gè)大括號(hào)抱完,就會(huì)被報(bào)錯(cuò)贼陶。

第二步是進(jìn)行預(yù)編譯,預(yù)編譯會(huì)把代碼當(dāng)中使用的變量巧娱,定義的函數(shù)解析出來(lái)碉怔,確定出環(huán)境中的變量和函數(shù)等信息,也就是這個(gè)過(guò)程會(huì)導(dǎo)致js變量提升的問(wèn)題,比如:

var a = 1; // 變量聲明
function b(y) { // 函數(shù)聲明
  var x = 1;
  console.log('so easy');
};
var c = function() { // 是變量聲明而不是函數(shù)聲明Q菅怠疏旨!
  // ...
}
b(100);

當(dāng)js引擎進(jìn)行預(yù)編譯的時(shí)候,首選會(huì)生成一個(gè)GO(Global Object趴樱,這里是window):

GO/window = {
  //頁(yè)面加載創(chuàng)建GO同時(shí),創(chuàng)建了document酪捡、navigator叁征、screen等等屬性
  a: undefined,
  c: undefined,
  b: function(y){
    var x = 1;
    console.log('so easy');
  }
}

第三步就是解釋并執(zhí)行代碼逛薇,直到遇到b(100)捺疼,代碼執(zhí)行后活動(dòng)對(duì)象變成了:

GO/window = {
  //頁(yè)面加載創(chuàng)建GO同時(shí),創(chuàng)建了document永罚、navigator啤呼、screen等等屬性
  a: 1,
  c: function() {
    // ...
  }卧秘,
  b: function(y){
    var x = 1;
    console.log('so easy');
  }
}

當(dāng)執(zhí)行b(100)的時(shí)候,js引擎會(huì)針對(duì)b函數(shù)進(jìn)行預(yù)編譯官扣,創(chuàng)建AO(Active Object)對(duì)象:

AO = {
  //創(chuàng)建AO同時(shí)翅敌,創(chuàng)建了arguments等等屬性,此處省略
  y: 100,
  x: undefined
}

然后執(zhí)行b(100)惕蹄。

之后會(huì)一直重復(fù)進(jìn)行預(yù)編譯=>代碼執(zhí)行的過(guò)程蚯涮。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市卖陵,隨后出現(xiàn)的幾起案子遭顶,更是在濱河造成了極大的恐慌,老刑警劉巖泪蔫,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棒旗,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡撩荣,警方通過(guò)查閱死者的電腦和手機(jī)嗦哆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)婿滓,“玉大人老速,你說(shuō)我怎么就攤上這事⊥怪鳎” “怎么了橘券?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)卿吐。 經(jīng)常有香客問(wèn)我旁舰,道長(zhǎng),這世上最難降的妖魔是什么嗡官? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任箭窜,我火速辦了婚禮,結(jié)果婚禮上衍腥,老公的妹妹穿的比我還像新娘磺樱。我一直安慰自己,他們只是感情好婆咸,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布竹捉。 她就那樣靜靜地躺著,像睡著了一般尚骄。 火紅的嫁衣襯著肌膚如雪块差。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音憨闰,去河邊找鬼状蜗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鹉动,可吹牛的內(nèi)容都是我干的轧坎。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼训裆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蜀铲?” 一聲冷哼從身側(cè)響起边琉,我...
    開(kāi)封第一講書(shū)人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎记劝,沒(méi)想到半個(gè)月后变姨,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡厌丑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年定欧,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怒竿。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡砍鸠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出耕驰,到底是詐尸還是另有隱情爷辱,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布朦肘,位于F島的核電站饭弓,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏媒抠。R本人自食惡果不足惜弟断,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望趴生。 院中可真熱鬧阀趴,春花似錦、人聲如沸苍匆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)锉桑。三九已至排霉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背攻柠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工球订, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人瑰钮。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓冒滩,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親浪谴。 傳聞我的和親對(duì)象是個(gè)殘疾皇子开睡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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

  • 在網(wǎng)絡(luò)的直言片語(yǔ)中禹禹前行,在書(shū)本的記錄中逐步加深苟耻,然而只有在實(shí)踐中才能提出疑問(wèn)篇恒,才能映像深刻。 我所理解的js執(zhí)...
    叫我徐小星閱讀 2,605評(píng)論 11 7
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,872評(píng)論 25 707
  • 「世界之最」好彩鉆石特供煙 2016-03-16張濤拉罕張濤拉罕習(xí)文塾 好彩香煙是美國(guó)在二戰(zhàn)期間美軍的特供香煙凶杖,大...
    張濤拉罕閱讀 5,043評(píng)論 1 9
  • 三月胁艰,我愛(ài)上了一顆星星 看到它那一刻 便覺(jué)得春風(fēng)十里,都只為向我吹過(guò) 但它光亮微弱 好像風(fēng)一來(lái)就會(huì)漸漸熄滅 但我還...
    喬鹿閱讀 437評(píng)論 0 6
  • 逆商智蝠,是美國(guó)職業(yè)培訓(xùn)師保羅·斯托茨提出的概念腾么,是人們面對(duì)逆境時(shí)的反應(yīng)方式,即面對(duì)挫折杈湾、擺脫困境和超越困難的能力解虱。 ...
    拉小姐閱讀 372評(píng)論 10 2