1. gzyueqian
      13352868059

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

      更新時間: 2022-02-08 15:03:56來源: 粵嵌教育瀏覽量:10690

        了解 JavaScript 的核心概念可以讓開發(fā)人員達(dá)到一個全新的水平,JavaScript 最重要的概念之一是執(zhí)行上下文,它無處不在——每次你開始使用 JavaScript 創(chuàng)建東西時,無論你是否知道,你都會在后臺使用它。每次新應(yīng)用程序啟動時,每次執(zhí)行函數(shù)時,執(zhí)行上下文都會在那里。那么,什么是執(zhí)行上下文?對JavaScript感興趣的同學(xué),可以參加Web前端培訓(xùn),幾個月的學(xué)習(xí)就能掌握全面系統(tǒng)的知識和技能,快速上崗。


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


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


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


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


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


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


        第一個執(zhí)行上下文是在 JavaScript 引擎運(yùn)行您的代碼時創(chuàng)建的。 JavaScript 引擎在執(zhí)行任何代碼之前都會創(chuàng)建一個新的執(zhí)行上下文,這個新的執(zhí)行上下文稱為全局執(zhí)行上下文。


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


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


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


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


        即使我們沒有編寫任何代碼,JavaScript 引擎仍然會創(chuàng)建一個全局執(zhí)行上下文。 JavaScript 是一種單線程編程語言,因此 JavaScript 執(zhí)行不可能有多個全局執(zhí)行上下文。



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


        創(chuàng)建——在這個階段,全局對象和 this 關(guān)鍵字被創(chuàng)建。 為創(chuàng)建的變量和函數(shù)分配內(nèi)存。 你可以看到我們的變量持有“未定義”的值。


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


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


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


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


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


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


        創(chuàng)建 eval 函數(shù)是為了將字符串轉(zhuǎn)換為可執(zhí)行的 JavaScript 代碼。雖然看起來很強(qiáng)大,但不建議使用這個功能,因?yàn)槲覀儫o法控制它的權(quán)限。


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


        JavaScript 的核心概念可以徹底改變開發(fā)現(xiàn)代應(yīng)用程序的游戲規(guī)則。執(zhí)行上下文是了解 JavaScript 代碼如何在后臺運(yùn)行的一個非常重要的概念。 它存在于每個編寫的 JavaScript 代碼中,它是學(xué)習(xí)其他 JavaScript 概念(如提升、閉包、作用域等)的要求之一。想學(xué)習(xí)更多JavaScript知識和技能,不妨考慮參加Web前端培訓(xùn),可以在短時間獲得快速提升,有效提高前端開發(fā)工作效率。

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 日韩精品一区二区视频2023 | 日本啪视频在线观看精品综合 | 中文字幕日本视频高清一区 | 香蕉亚洲欧洲在线一区 | 综合国产在线中文字幕 | 亚洲国产精品午夜不卡网站 |