執行上下文

2021-10-25 07:01:56 字數 2342 閱讀 9986

let i=0;

let j=1;

let k=[0

];k[i]

=j;let z=k;

//因為k是引用資料型別,所以z和k共用乙個位址

console.

log(z)

;//[1]k[0

]=2;

console.

log(z)

;//[2]z[0

]=3;

console.

log(k)

;//[3]k=[

1,2]

;//重新開闢乙個位址 重新賦值給k

console.

log(z)

;//[3];

/** * 堆 棧

* 儲存基本資料型別 存引入資料

* 具體的值 位址

*/

//執行上下文;

全域性在建立之前會建立go;函式在呼叫之前會建立ao;確定當前變數被呼叫的時候在什麼當前環境下,變數取值是什麼;

//全域性上下文

//1、全域性物件window

執行上下文的生命週期:

1、建立

(變數和函式的提公升)

2、執行

(執行函式體的**[會改變當前變數和全域性變數的值]);

//執行棧:存放執行上下文(最底層是go,最上面是正在呼叫的函式)

//注:filo 進棧 出棧

3、銷毀

//區域性上下文

//1、建立區域性物件 ao active object

//2、預編譯

// 1.形參 變數

// 2.形參 變數賦值 undefined

// 3.形參和實參相統一

// 4.函式提公升

// 5.確定this的指向(由呼叫者確定)

// 6.確定作用域(語法環境,在**宣告,就確定在**)

// 7.初始化作用域鏈

//3、執行函式體的**

//ec execution context

//分類

//1、全域性上下文:開啟乙個視窗就會建立乙個全域性上下文(關閉即銷毀);

//2、區域性上下文:呼叫函式時就會建立乙個區域性上下文(函式執行完就銷毀);

全域性只有乙個;區域性可以有多個;乙個函式呼叫多次會建立多個;

//3、eval上下文(了解):可以解讀js字串中的**;

// filo 先進後出 first in last out

//變數提公升:var宣告的變數(除函式內),只提公升變數的宣告。

//函式提公升:字面量宣告的函式;提公升整個函式體

function

f70(

) console.

log(f70)

;//fn

var f70 =

"adc"

; console.

log(f70)

;//adc

var f70 =

123;

console.

log(f70)

;//123

}f70()

;//執行上下文

//ec execution context

//功能:**執行之前的準備工作,確定當前環境下變數的取值

//分類

//1、全域性上下文:開啟乙個視窗就會建立乙個全域性上下文(關閉即銷毀);

//2、區域性上下文:呼叫函式時就會建立乙個區域性上下文(函式執行完就銷毀);

作用域:靜態

執行上下文:動態的

//3、eval上下文(了解):可以解讀js字串中的**;

// filo 先進後出 first in last out

//變數提公升:var宣告的變數(除函式內),只提公升變數的宣告。

//函式提公升:字面量宣告的函式;提公升整個函式體

//先提公升變數再提公升函式

//如果函式體要使用變數,先找自己區域性的 再找全域性

作用鏈:找函式宣告時的位置外的變數;

執行棧:存放執行上下文;最底層一定是go

function

f70(

) console.

log(f70)

;//fn

var f70 =

"adc"

; console.

log(f70)

;//adc

var f70 =

123;

console.

log(f70)

;//123

}f70()

;

執行上下文

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

this執行上下文

this的指向為 誰呼叫當前this所在的函式,this就指向誰。也就是說,當前呼叫函式的那個物件自身就是this,就是當前的執行上下文。被滑鼠事件,鍵盤事件等觸發的函式 叫做事件處理函式,事件處理函式的this指向事件源 觸發事件的節點 事件處理函式第乙個引數是事件物件 備註 有名函式的this指...

執行上下文

js原理 原型鏈 執行上下文 事件迴圈 預備知識 1 棧 stack 棧是類似於陣列的一種資料結構。2物件引用 user1指向使用者物件 user1持有使用者物件的引用 var user1 var user2 user1 user2.name 張三 console.log user1.name,us...