成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Javascript基礎(chǔ)知識(shí)-執(zhí)行上下文和執(zhí)行上下文棧

Wuv1Up / 2581人閱讀

摘要:具體表現(xiàn)為執(zhí)上下棧瀏覽器中的解釋器是單線程的,相當(dāng)于瀏覽器中同時(shí)間只能做個(gè)事情。代碼中只有個(gè)全局執(zhí)上下,和數(shù)個(gè)函數(shù)執(zhí)上下,這些組成了執(zhí)上下棧。個(gè)函數(shù)的執(zhí)上下,在函數(shù)執(zhí)完畢后,會(huì)被移出執(zhí)上下棧。逗號(hào)表達(dá)式只返回最后一項(xiàng)。

執(zhí)?上下?

當(dāng)函數(shù)執(zhí)?時(shí),會(huì)創(chuàng)建?個(gè)稱為執(zhí)?上下?(execution contex)的環(huán)境,分為創(chuàng)建和執(zhí)?2個(gè)階段
創(chuàng)建階段,指函數(shù)被調(diào)?但還未執(zhí)?任何代碼時(shí),此時(shí)創(chuàng)建了?個(gè)擁有3個(gè)屬性的對(duì)象:

executionContext = {
scopeChain: {}, // 創(chuàng)建作?域鏈(scope chain)
variableObject: {}, // 初始化變量、函數(shù)、形參
this: {} // 指定this
}

代碼執(zhí)?階段主要的?作是:1、分配變量、函數(shù)的引?,賦值。2、執(zhí)?代碼。
在javascript創(chuàng)建階段會(huì)出現(xiàn)變量提升(Hoisting)。
具體表現(xiàn)為:

function demo(){
    console.log(a);
}
demo();

function demo(){
    console.log(a);
    var a = 2;
}
demo();

執(zhí)?上下?棧

瀏覽器中的JS解釋器是單線程的,相當(dāng)于瀏覽器中同?時(shí)間只能做?個(gè)事情。
代碼中只有?個(gè)全局執(zhí)?上下?,和?數(shù)個(gè)函數(shù)執(zhí)?上下?,這些組成了執(zhí)?上下?棧(Execution Stack)。
?個(gè)函數(shù)的執(zhí)?上下?,在函數(shù)執(zhí)?完畢后,會(huì)被移出執(zhí)?上下?棧。
具體表現(xiàn)為:

function c(){
    console.log("hello world");
}
function a(){
    function b(){
        c();
    }
    b();
}
a();

| c()    |
| b()    |
| a()    |
| gobal  |
----------

它是一個(gè)棧型的,先執(zhí)行的先進(jìn)去后結(jié)束,后進(jìn)去的先結(jié)束。

逗號(hào)表達(dá)式只返回最后一項(xiàng)。var a = (0,1,2,3); a = 3;

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/106372.html

相關(guān)文章

  • 前端進(jìn)階系列(七):什么是執(zhí)行下文?什么是調(diào)用?

    摘要:什么是中的調(diào)用棧調(diào)用棧就像是程序當(dāng)前執(zhí)行的日志。當(dāng)函數(shù)執(zhí)行結(jié)束時(shí),將從調(diào)用棧中出去。了解全局和局部執(zhí)行上下文是掌握作用域和閉包的關(guān)鍵??偨Y(jié)引擎創(chuàng)建執(zhí)行上下文,全局存儲(chǔ)器和調(diào)用棧。 原文作者:Valentino 原文鏈接:https://www.valentinog.com/blog/js-execution-context-call-stack 什么是Javascript中的執(zhí)行上下文...

    leone 評(píng)論0 收藏0
  • 【進(jìn)階1-2期】JavaScript深入之執(zhí)行下文變量對(duì)象

    摘要:本計(jì)劃一共期,每期重點(diǎn)攻克一個(gè)面試重難點(diǎn),如果你還不了解本進(jìn)階計(jì)劃,點(diǎn)擊查看前端進(jìn)階的破冰之旅本期推薦文章深入之執(zhí)行上下文棧和深入之變量對(duì)象,由于微信不能訪問外鏈,點(diǎn)擊閱讀原文就可以啦。 (關(guān)注福利,關(guān)注本公眾號(hào)回復(fù)[資料]領(lǐng)取優(yōu)質(zhì)前端視頻,包括Vue、React、Node源碼和實(shí)戰(zhàn)、面試指導(dǎo)) 本周正式開始前端進(jìn)階的第一期,本周的主題是調(diào)用堆棧,今天是第二天。 本計(jì)劃一共28期,每期...

    Richard_Gao 評(píng)論0 收藏0
  • 深入理解JavaScript執(zhí)行下文執(zhí)行

    摘要:執(zhí)行上下文和執(zhí)行棧是中關(guān)鍵概念之一,是難點(diǎn)之一。理解執(zhí)行上下文和執(zhí)行棧同樣有助于理解其他的概念如提升機(jī)制作用域和閉包等。函數(shù)執(zhí)行完成,函數(shù)的執(zhí)行上下文出棧,并且被銷毀。 前言 如果你是一名 JavaScript 開發(fā)者,或者想要成為一名 JavaScript 開發(fā)者,那么你必須知道 JavaScript 程序內(nèi)部的執(zhí)行機(jī)制。執(zhí)行上下文和執(zhí)行棧是JavaScript中關(guān)鍵概念之一,是Ja...

    silenceboy 評(píng)論0 收藏0
  • 深入理解JavaScript執(zhí)行下文執(zhí)行

    摘要:執(zhí)行上下文和執(zhí)行棧是中關(guān)鍵概念之一,是難點(diǎn)之一。理解執(zhí)行上下文和執(zhí)行棧同樣有助于理解其他的概念如提升機(jī)制作用域和閉包等。函數(shù)執(zhí)行完成,函數(shù)的執(zhí)行上下文出棧,并且被銷毀。 前言 如果你是一名 JavaScript 開發(fā)者,或者想要成為一名 JavaScript 開發(fā)者,那么你必須知道 JavaScript 程序內(nèi)部的執(zhí)行機(jī)制。執(zhí)行上下文和執(zhí)行棧是JavaScript中關(guān)鍵概念之一,是Ja...

    leiyi 評(píng)論0 收藏0
  • 前端進(jìn)擊的巨人(一):執(zhí)行下文執(zhí)行,變量對(duì)象

    摘要:在中,通過棧的存取方式來管理執(zhí)行上下文,我們可稱其為執(zhí)行棧,或函數(shù)調(diào)用棧。而處于棧頂?shù)氖钱?dāng)前正在執(zhí)行函數(shù)的執(zhí)行上下文,當(dāng)函數(shù)調(diào)用完成后,它就會(huì)從棧頂被推出理想的情況下,閉包會(huì)阻止該操作,閉包后續(xù)文章深入詳解。 寫在開篇 已經(jīng)不敢自稱前端小白,曾經(jīng)吹過的牛逼總要一點(diǎn)點(diǎn)去實(shí)現(xiàn)。 正如前領(lǐng)導(dǎo)說的,自己喝酒吹過的牛皮,跪著都得含著淚去實(shí)現(xiàn)。 那么沒有年終完美總結(jié),來個(gè)新年莽撞開始可好。 進(jìn)擊巨...

    _Suqin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<