js底層原理一(變量提升豆励、函數提升)

前言:

js是解釋性語言夺荒,運行時才能解析出代碼對錯。

為什么可以變量函數提升良蒸?

js代碼是自上而下執(zhí)行技扼,但是在js代碼執(zhí)行前,會先進行詞法分析嫩痰。在詞法分析時剿吻,將變量和函數進行了提升。

js執(zhí)行兩個階段:

  • 1.詞法分析
  • 2.執(zhí)行

詞法分析三步驟

1串纺、分析參數
2丽旅、再分析變量的聲明
3、分析函數聲明

舉例

1 function fn(a){
2   var a = 1;
3   function a(){
4      console.log("a函數")
5   }
6    alert(a)
7 }
8 fn(2)

實際實現代碼:

1 function fn(a){
2  var a = undefined;
3    a = 2;
4    a = function a(){
5       console.log("a函數")
6    }
7    a = 1;
8    alert(a); // 1
9 }
10 fn(2)

具體分析:

詞法分析三步:

函數在運行的瞬間纺棺,生成一個活動對象(Active Object)榄笙,簡稱AO
第一步,分析函數參數:
  形式參數:AO.a = undefined
  實參:AO.a = 2
第二步祷蝌,變量聲明:
  僅做一件事茅撞,沒有var a的話,就var a;
第三步巨朦,函數聲明:
  有函數a米丘,AO.a = function a() {}

運行期:

將a賦值內部變量,即a=1;


不理解的可以私信糊啡。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末拄查,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子棚蓄,更是在濱河造成了極大的恐慌堕扶,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件梭依,死亡現場離奇詭異挣柬,居然都是意外死亡,警方通過查閱死者的電腦和手機睛挚,發(fā)現死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門邪蛔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人扎狱,你說我怎么就攤上這事侧到。” “怎么了淤击?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵匠抗,是天一觀的道長。 經常有香客問我污抬,道長汞贸,這世上最難降的妖魔是什么绳军? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮矢腻,結果婚禮上门驾,老公的妹妹穿的比我還像新娘。我一直安慰自己多柑,他們只是感情好奶是,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著竣灌,像睡著了一般聂沙。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上初嘹,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天及汉,我揣著相機與錄音,去河邊找鬼屯烦。 笑死豁生,一個胖子當著我的面吹牛,可吹牛的內容都是我干的漫贞。 我是一名探鬼主播甸箱,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼迅脐!你這毒婦竟也來了芍殖?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谴蔑,失蹤者是張志新(化名)和其女友劉穎豌骏,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體隐锭,經...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡窃躲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了钦睡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒂窒。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖荞怒,靈堂內的尸體忽然破棺而出洒琢,到底是詐尸還是另有隱情,我是刑警寧澤褐桌,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布衰抑,位于F島的核電站,受9級特大地震影響荧嵌,放射性物質發(fā)生泄漏呛踊。R本人自食惡果不足惜砾淌,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望谭网。 院中可真熱鬧汪厨,春花似錦、人聲如沸蜻底。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽薄辅。三九已至,卻和暖如春抠璃,著一層夾襖步出監(jiān)牢的瞬間站楚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工搏嗡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窿春,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓采盒,卻偏偏與公主長得像旧乞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子磅氨,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354