/*變數公升級 預處理
*//*
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...