程式執行

延續前面章節所提到的,JavaScript 分成兩個階段,第一階段為創造階段 (Creation Context),這個章節將介紹第二階段,執行階段 (Execution Context)

執行階段

在這個階段中,JavaScript 在創造變數與函式後,會 ‘逐行’ 執行你所寫的程式碼,執行範例結果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function b() {
console.log('Called b!');
}

b();

console.log(a);

var a = 'Hellow World!';

console.log(a);

// Called b!
// undefined
// Hellow World!

第一次呼叫的 a 在宣告前呼叫,所以因為創造階段的 hoisting 而賦予一個預設值 undefined,第二次呼叫的 a 就如大家預期在執行階段被主動賦值為 ‘Hellow World!’