<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      JavaScript 對執行上下文的理解

      什么是執行上下文

      執行上下文是評估和執行 JavaScript 代碼的環境的抽象概念。
      

      執行上下文類型:

      1. 全局執行上下文,
      2. 函數執行上下文,
      3. eval 函數執行上下文;
      全局執行上下文:
      任何不在函數內部的都是全局執行上下文,
      它首先會創建一個全局的 window 對象,
      并且設置 this 的值等于這個全局對象,
      一個程序中只有一個全局執行上下文。
      
      函數執行上下文:
      當一個函數被調用時,就會為該函數創建一個新的執行上下文,函數的上下文可以有任意多個。
      
      eval 函數執行上下文:
      執行在 eval函數中的代碼會有屬于他自己的執行上下文。
      

      執行上下文棧:

      ● JavaScript引擎使用執行上下文棧來管理執行上下文;
      ● 當JavaScript執行代碼時,首先遇到全局代碼,會創建一個全局執行上下文并且壓入執行棧中,
        每當遇到一個函數調用,就會為該函數創建一個新的執行上下文并壓入棧頂,
        引擎會執行位于執行上下文棧頂的函數,當函數執行完成之后,執行上下文從棧中彈出,繼續執行下一個上下文。
        當所有的代碼都執行完畢之后,從棧中彈出全局執行上下文。
      
      	let a = 'Hello World!';
      	function first() {
      	  console.log('Inside first function');
      	  second();
      	  console.log('Again inside first function');
      	}
      	function second() {
      	  console.log('Inside second function');
      	}
      	first();
      	// 執行順序:
      	// first() 函數中的代碼先執行,然后調用 second(),second() 執行完畢后,再回到 first() 中繼續執行剩余的代碼。
      

      創建執行上下文:

      創建執行上下文有兩個階段:創建階段和執行階段。
      
      • 創建階段:
        1. this綁定:

          • 在全局執行上下文中,this 指向全局對象(window 對象);
          • 在函數執行上下文中,this 指向取決于函數如何調用。
            如果它被一個引用對象調用,那么 this 會被設置成那個對象,
            否則 this 的值被設置為全局對象或者 undefined。
        2. 創建詞法環境組件:

          • 詞法環境:
            是一種持有標識符——變量映射的數據結構,標識符是指變量/函數名,而變量是對實際對象或原始數據的引用。
          • 詞法環境的內部有兩個組件:
            1. 環境記錄器: 用來儲存變量個函數聲明的實際位置。
            2. 外部環境的引用:它可以訪問其父級詞法環境(作用域)。
        3. 創建變量環境組件:
          變量環境也是一個詞法環境,其環境記錄器持有變量聲明語句在執行上下文中創建的綁定關系。

      • 執行階段:

        此階段會完成對變量的分配,最后執行完代碼。

      簡單來說執行上下文就是指:
      在執行一點JS代碼之前,需要先解析代碼。
      解析的時候會先創建一個全局執行上下文環境,先把代碼中即將執行的變量、函數聲明都拿出來,變量先賦值為undefined,函數先聲明好可使用。
      這一步執行完了,才開始正式的執行程序。
      

      在一個函數執行之前,也會創建一個函數執行上下文環境,跟全局執行上下文類似,不過函數執行上下文會多出this、arguments和函數的參數。

      ● 全局上下文:變量定義,函數聲明;
      ● 函數上下文:變量定義,函數聲明,this,arguments。
      
      關于詞法環境:
      詞法環境是一種規范類型,基于 ECMAScript 代碼的詞法嵌套結構來定義標識符和具體變量和函數的關聯。
      一個詞法環境由環境記錄器和一個可能的引用外部詞法環境的空值組成。
      
      posted @ 2025-08-19 22:21  HECHEN****  閱讀(10)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲乱码中文字幕综合| 国产成人精品亚洲日本在线观看| 免费A级毛片无码A∨蜜芽试看 | 97在线视频人妻无码| 国产AV影片麻豆精品传媒| 人妻在线中文字幕| 邻居少妇张开腿让我爽了一夜| 国产精品日韩av在线播放| 国产精品午夜福利在线观看| 双乳奶水饱满少妇呻吟免费看| 精品人妻人人做人人爽夜夜爽| 成人啪啪高潮不断观看| 无码人妻久久一区二区三区app| 亚洲综合精品成人| 亚洲综合精品一区二区三区| 久久综合九色综合久桃花| 熟妇激情一区二区三区| 国产精品毛片久久久久久久| 久久亚洲日本激情战少妇| 亚洲人成电影网站 久久影视| 久久av高潮av喷水av无码| 日韩av一区二区三区不卡| 日韩av一区二区精品不卡| 国产高清视频在线播放www色| 国内精品无码一区二区三区| 激情综合色综合啪啪五月| 好紧好滑好湿好爽免费视频| 亚洲国产中文字幕在线视频综合| 成av人电影在线观看| 国产短视频一区二区三区| 国产偷国产偷亚洲清高| 依依成人精品视频在线观看| 潘金莲高清dvd碟片| 亚洲爆乳WWW无码专区| 精品人伦一区二区三区蜜桃免费| 亚洲小说乱欧美另类| 好深好湿好硬顶到了好爽| 欧美激情a∨在线视频播放| 九九热在线视频精品免费| 国产精品中文字幕综合| 性一交一黄一片|