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

資訊專(zhuān)欄INFORMATION COLUMN

調(diào)用堆棧筆記(初級(jí))

yvonne / 3387人閱讀

摘要:調(diào)用棧是解析器的一種機(jī)制當(dāng)腳本要調(diào)用一個(gè)函數(shù)時(shí),解析器把該函數(shù)添加到棧中并且執(zhí)行這個(gè)函數(shù)。原文地址是單線程語(yǔ)言,也就是說(shuō)它只有一個(gè)調(diào)用棧。調(diào)用棧記錄程序運(yùn)行情況。調(diào)用函數(shù)會(huì)在棧的頂部,返回函數(shù)會(huì)彈出棧。

調(diào)用棧

是解析器的一種機(jī)制

當(dāng)腳本要調(diào)用一個(gè)函數(shù)時(shí),解析器把該函數(shù)添加到棧中并且執(zhí)行這個(gè)函數(shù)。
任何被這個(gè)函數(shù)調(diào)用的函數(shù)會(huì)進(jìn)一步添加到調(diào)用棧中,并且運(yùn)行到它們被上個(gè)程序調(diào)用的位置。
當(dāng)函數(shù)運(yùn)行結(jié)束后,解釋器將它從堆棧中取出,并在主代碼列表中繼續(xù)執(zhí)行代碼。
如果棧占用的空間比分配給它的空間還大,那么則會(huì)導(dǎo)致“棧溢出”錯(cuò)誤。
原文地址:https://developer.mozilla.org...

JavaScript是單線程語(yǔ)言,也就是說(shuō)它只有一個(gè)調(diào)用棧。

調(diào)用棧記錄程序運(yùn)行情況。調(diào)用函數(shù)會(huì)在棧的頂部,返回函數(shù)會(huì)彈出棧。

棧溢出: 超過(guò)棧的最大空間

執(zhí)行上下文

有三種

全局執(zhí)行上下文(1、都有一個(gè)全局對(duì)象,在瀏覽器中一般為window。2、此時(shí),this會(huì)指向全局對(duì)象,瀏覽器中一般為window)

函數(shù)執(zhí)行上下文(每個(gè)函數(shù)創(chuàng)建都會(huì)有一個(gè)新的執(zhí)行上下文)

   在非嚴(yán)格模式下,this指向全局對(duì)象。
   在嚴(yán)格模式下,this將保持他進(jìn)入執(zhí)行上下文時(shí)的值

Eval()執(zhí)行上下文(不常用,不討論)

變量提升

“提升”至頂部,實(shí)際上是,變量和函數(shù)聲明在編譯時(shí)放進(jìn)了內(nèi)存。
僅僅是聲明被提升。
原因是:執(zhí)行上下文的方式

總結(jié)

JS解析器開(kāi)始執(zhí)行:

創(chuàng)建一個(gè)執(zhí)行上下文棧

執(zhí)行全局的執(zhí)行上下文,并放入執(zhí)行上下文棧中

調(diào)用函數(shù)時(shí),創(chuàng)建函數(shù)執(zhí)行上下文棧,放入函數(shù),執(zhí)行完彈出。

保證單線程。

執(zhí)行上下文創(chuàng)建分成兩個(gè)階段:

創(chuàng)建階段: 將所有的變量,函數(shù)聲明以及函數(shù)參數(shù) 組成一個(gè)活動(dòng)對(duì)象
執(zhí)行階段: 解釋代碼.

原文地址:https://www.cnblogs.com/lin-j...

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

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

相關(guān)文章

  • JavaScript 是如何工作的:JavaScript 的內(nèi)存模型

    摘要:調(diào)用堆棧是存放原始數(shù)據(jù)類(lèi)型的地方除了函數(shù)調(diào)用之外。上一節(jié)中聲明變量后調(diào)用堆棧的粗略表示如下。解釋改變的正確方法是更改內(nèi)存地址。在聲明時(shí),將在調(diào)用堆棧上分配內(nèi)存地址,該值是在堆上分配的內(nèi)存地址。 這是專(zhuān)門(mén)探索 JavaScript 及其所構(gòu)建的組件的系列文章的第 21 篇。 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客,一年百來(lái)篇優(yōu)質(zhì)文章等著你! 如果你錯(cuò)過(guò)了前面的章節(jié),可以在這里找到它們:...

    baoxl 評(píng)論0 收藏0
  • Java小白進(jìn)階筆記(3)-初級(jí)面向?qū)ο?/b>

    摘要:面向?qū)ο缶幊虖牟煌慕嵌葋?lái)看待計(jì)算機(jī)程序,它注重的是計(jì)算機(jī)所完成的任務(wù),而非處理方式。傳統(tǒng)的語(yǔ)言屬于面向過(guò)程編程,語(yǔ)言屬于面向?qū)ο缶幊獭C嫦驅(qū)ο缶幊谈鶕?jù)要解決的問(wèn)題,可以抽象出如下對(duì)象客戶(hù)銀行卡現(xiàn)金票據(jù)等。 面向過(guò)程編程&面向?qū)ο缶幊?從面向過(guò)程到面向?qū)ο螅粌H僅是編程方式的改變,更重要的是思維方式的改變。 面向過(guò)程編程按照順序執(zhí)行的一系列指令,通常是分析出解決問(wèn)題所需要的步驟,然后用...

    AnthonyHan 評(píng)論0 收藏0
  • 前端培訓(xùn)-中級(jí)階段(2) - 事件(event) 事件冒泡、捕獲 - (2019-06-20期)

    摘要:事件監(jiān)聽(tīng)器可以被添加到節(jié)點(diǎn)上并在給定事件發(fā)生時(shí)觸發(fā)??梢赃x擇觸發(fā)階段冒泡捕獲事件機(jī)制標(biāo)準(zhǔn)事件標(biāo)準(zhǔn)規(guī)定事件流包含三個(gè)階段,分別為事件捕獲階段,目標(biāo)階段,事件冒泡階段。返回其事件監(jiān)聽(tīng)器觸發(fā)該事件的元素。清理事務(wù)設(shè)置檢查點(diǎn)的標(biāo)志為。 前端最基礎(chǔ)的就是 HTML+CSS+Javascript。掌握了這三門(mén)技術(shù)就算入門(mén),但也僅僅是入門(mén),現(xiàn)在前端開(kāi)發(fā)的定義已經(jīng)遠(yuǎn)遠(yuǎn)不止這些。前端小課堂(HTML/C...

    FrozenMap 評(píng)論0 收藏0
  • 前端培訓(xùn)-中級(jí)階段(2) - 事件(event) 事件冒泡、捕獲 - (2019-06-20期)

    摘要:事件監(jiān)聽(tīng)器可以被添加到節(jié)點(diǎn)上并在給定事件發(fā)生時(shí)觸發(fā)??梢赃x擇觸發(fā)階段冒泡捕獲事件機(jī)制標(biāo)準(zhǔn)事件標(biāo)準(zhǔn)規(guī)定事件流包含三個(gè)階段,分別為事件捕獲階段,目標(biāo)階段,事件冒泡階段。返回其事件監(jiān)聽(tīng)器觸發(fā)該事件的元素。清理事務(wù)設(shè)置檢查點(diǎn)的標(biāo)志為。 前端最基礎(chǔ)的就是 HTML+CSS+Javascript。掌握了這三門(mén)技術(shù)就算入門(mén),但也僅僅是入門(mén),現(xiàn)在前端開(kāi)發(fā)的定義已經(jīng)遠(yuǎn)遠(yuǎn)不止這些。前端小課堂(HTML/C...

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

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

0條評(píng)論

閱讀需要支付1元查看
<