• 招生咨詢熱線:4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢熱線
4008-569-579
機(jī)構(gòu)主頁(yè) > 培訓(xùn)資料 > Web前端培訓(xùn):了解 JavaScript 中的執(zhí)行上下文
機(jī)構(gòu)主頁(yè) > 培訓(xùn)資料>Web前端培訓(xùn):了解 JavaScript 中的執(zhí)行上下文

Web前端培訓(xùn):了解 JavaScript 中的執(zhí)行上下文

來源:廣州達(dá)內(nèi)教育        時(shí)間:2023-05-30        熱度:40℃        返回列表

  了解 Javascript 的核心概念可以讓開發(fā)人員達(dá)到一個(gè)全新的水平,Javascript

最重要的概念之一是執(zhí)行上下文,它無處不在——每次你開始使用 Javascript

創(chuàng)建東西時(shí),無論你是否知道,你都會(huì)在后臺(tái)使用它。每次新應(yīng)用程序啟動(dòng)時(shí),每次執(zhí)行函數(shù)時(shí),執(zhí)行上下文都會(huì)在那里。那么,什么是執(zhí)行上下文?對(duì)Javascript感興趣的同學(xué),可以參加Web前端培訓(xùn),幾個(gè)月的學(xué)習(xí)就能掌握全面系統(tǒng)的知識(shí)和技能,快速上崗。


  執(zhí)行上下文允許 Javascript

引擎管理解釋和運(yùn)行代碼的復(fù)雜性。執(zhí)行上下文是一個(gè)抽象概念,它包含有關(guān)當(dāng)前代碼正在執(zhí)行的環(huán)境的信息。


  我們有三種不同類型的Javascript 執(zhí)行上下文:


  全局執(zhí)行上下文——這個(gè)執(zhí)行上下文由 Javascript 引擎默認(rèn)創(chuàng)建。


  函數(shù)執(zhí)行上下文 - 每當(dāng)執(zhí)行函數(shù)時(shí)都會(huì)創(chuàng)建此執(zhí)行上下文。


  eval 執(zhí)行上下文——這個(gè)執(zhí)行上下文是在一個(gè) eval 函數(shù)中創(chuàng)建的。


  1. 全局執(zhí)行上下文


  第一個(gè)執(zhí)行上下文是在 Javascript 引擎運(yùn)行您的代碼時(shí)創(chuàng)建的。 Javascript

引擎在執(zhí)行任何代碼之前都會(huì)創(chuàng)建一個(gè)新的執(zhí)行上下文,這個(gè)新的執(zhí)行上下文稱為全局執(zhí)行上下文。


  全局執(zhí)行上下文是 Javascript

引擎創(chuàng)建的默認(rèn)執(zhí)行上下文。所有不在函數(shù)或?qū)ο髢?nèi)的全局代碼都將在全局執(zhí)行上下文中執(zhí)行。在Web前端培訓(xùn)中,有理論課程+實(shí)踐項(xiàng)目一起學(xué)習(xí),深化所學(xué)知識(shí),積累項(xiàng)目經(jīng)驗(yàn),獲得快速提升。


  每個(gè)執(zhí)行上下文(不僅僅是全局上下文)都將包含兩件事:


  A global object——提供在當(dāng)前環(huán)境中任何地方都可用的變量和函數(shù)。在瀏覽器中,全局對(duì)象被命名為window,使用

Node.js 時(shí),全局對(duì)象被命名為 global。


  A this object – this 關(guān)鍵字指向代碼所屬的當(dāng)前執(zhí)行上下文對(duì)象。


  即使我們沒有編寫任何代碼,Javascript 引擎仍然會(huì)創(chuàng)建一個(gè)全局執(zhí)行上下文。 Javascript

是一種單線程編程語言,因此 Javascript 執(zhí)行不可能有多個(gè)全局執(zhí)行上下文。




  最初,全局執(zhí)行上下文有兩個(gè)階段:


  創(chuàng)建——在這個(gè)階段,全局對(duì)象和 this 關(guān)鍵字被創(chuàng)建。 為創(chuàng)建的變量和函數(shù)分配內(nèi)存。

你可以看到我們的變量持有“未定義”的值。


  執(zhí)行——在這個(gè)階段,代碼的執(zhí)行開始了。 在我們的示例中,我們?yōu)樽兞抠x值并定義了函數(shù)。


  2. 函數(shù)執(zhí)行上下文


  執(zhí)行函數(shù)時(shí)會(huì)創(chuàng)建函數(shù)執(zhí)行上下文。


  創(chuàng)建的新執(zhí)行上下文是函數(shù)執(zhí)行上下文。它具有相同的階段,我們可以訪問一個(gè)稱為參數(shù)的特殊值。參數(shù)值是我們?cè)趫?zhí)行函數(shù)時(shí)傳遞給函數(shù)的參數(shù)。參加Web前端培訓(xùn),可以讓你學(xué)到很多Javascript知識(shí)和技能,有經(jīng)驗(yàn)豐富的專業(yè)講師面授指導(dǎo)教學(xué),實(shí)時(shí)解決疑難雜癥問題,學(xué)習(xí)起來又快又有效。


  一個(gè)函數(shù)可以在其中執(zhí)行一個(gè)函數(shù),依此類推。每次執(zhí)行函數(shù)時(shí),都會(huì)創(chuàng)建一個(gè)新的函數(shù)執(zhí)行上下文。


  3. eval 執(zhí)行上下文


  創(chuàng)建 eval 函數(shù)是為了將字符串轉(zhuǎn)換為可執(zhí)行的 Javascript

代碼。雖然看起來很強(qiáng)大,但不建議使用這個(gè)功能,因?yàn)槲覀儫o法控制它的權(quán)限。


  eval 函數(shù)的使用可能會(huì)使您的應(yīng)用程序或服務(wù)受到注入攻擊。 eval

函數(shù)接收到的字符串可能是惡意字符串,可以完全破壞您的數(shù)據(jù)庫(kù)或應(yīng)用程序。這就是為什么不推薦使用 eval 函數(shù)的原因。


  Javascript 的核心概念可以徹底改變開發(fā)現(xiàn)代應(yīng)用程序的游戲規(guī)則。執(zhí)行上下文是了解 Javascript

代碼如何在后臺(tái)運(yùn)行的一個(gè)非常重要的概念。 它存在于每個(gè)編寫的 Javascript 代碼中,它是學(xué)習(xí)其他 Javascript

概念(如提升、閉包、作用域等)的要求之一。想學(xué)習(xí)更多Javascript知識(shí)和技能,不妨考慮參加Web前端培訓(xùn),可以在短時(shí)間獲得快速提升,有效提高前端開發(fā)工作效率。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部