函數、環境與變數環境

這章節針對變數的環境最一個簡單的介紹

變數環境

變數環境指的是變數創造時所在的環境,每個執行環境中的變數彼此式獨立的,並不會彼此影響,一段程式碼如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function b() {
var myVar;
console.log(myVar);
}

function a() {
var myVar = 2;
console.log(myVar);
b();
}

var myVar = 1;
console.log(myVar);
a();
console.log(myVar);

// 1
// 2
// undefined
// 1

首先全域環境中的 myVar 變數被宣告,所以先取得 1,接著呼叫 a 函數加到執行堆上層並宣告該執行環境中的 myVar 變數取得 2 後同樣執行 b 函數加到執行堆上層並宣告該執行環境中的 myVar ,因為沒有賦值所以為 undefined ,最後 b 與 a 執行結束後離開執行堆,取得最後一個全域環境中的 1