11 變數提公升 執行上下文

2022-06-02 18:51:08 字數 786 閱讀 1838

/*

變數公升級 預處理

*//*

js引擎在**正式執行之前會做乙個預處理的工作:

1.收集變數

2.收集函式

依據:var 將var後邊的變數定義但不賦值 var username=undefined;

function(){}

*/console.log(username); //答案:underfined

var username='kobe';

console.log(username) //kobe

fun(); //答案:正常執行函式

function fun()

/*作用域:作用域是在**定義的時候產生的

//執行上下文 執行上下文物件(this)

執行上下文(excute context) ec

理解:**執行的環境

時機(產生時):**正式執行之前會進入到執行環境

工作:1.建立變數物件:

1)變數

2)函式及函式的引數

3)全域性:window

4)區域性:抽象的但是確實存在

2.確認this的指向

1)全域性:this --->window

2)區域性:this --->呼叫其的物件

3.建立作用域鏈

父級作用域鏈+當前的變數物件

4.擴充套件

ecobj=

scopechain(作用域鏈):父級作用域鏈+當前的變數物件

this:

}*/

提公升 執行上下文和執行上下文棧

提公升 1.變數宣告提公升 通過var定義 宣告 的變數,在之前就可以直接使用,但不會被賦值 值 undefined 2.函式宣告提公升 通過function宣告的函式,在之前就可以直接呼叫 函式表示式不能在定義前呼叫 值 函式定義 物件 3.問題 變數提公升和函式提公升怎麼產生的?變數提公升簡單理...

JS 變數提公升 執行上下文 作用域鏈

一 執行上下文 execute context ec 理解 的執行環境 時機 正式執行之前會進入到執行環境,執行結束銷毀 工作 1.建立變數物件 1 變數 2 函式及函式的引數 3 全域性 window 4 區域性 抽象的但是確實存在 2.確認this指向 1 全域性 this window 2 區...

執行上下文

1.分類 位置 全域性 函式 區域性 2.全域性執行上下文 在執行全域性 前將window確定為全域性執行上下文 對全域性資料進行預處理 var定義的全域性變數 undefined,新增為window的屬性 function宣告的全域性函式 賦值 fun 新增為window的方法 this 賦值 w...