這一篇文章會提到全域環境與全域物件在瀏覽器中的執行。

全域環境


首先來執行個 JavaScript 檔案看看:

1

等等,這是空的耶!沒寫任何東西也能執行嗎?

首先在執行 JavaScript 時,會先創造全域執行環境,所謂的全域代表可以在任何地方取用它。

而全域環境會創造 2 樣東西:

  1. 全域物件
  2. 特殊變數 - this

全域物件


我們試著打開瀏覽器開發者工具的 console,雖然看起來沒東西

Image

但是輸入 this 看看,可以發現明明沒有輸入任何程式碼,卻出現了 Window 這個物件

而這個 window 物件,就是瀏覽器裡這個頁面的全域物件。

this 代表的是這個分頁,如果開另一份分頁,會有另一個全域物件。

每一個視窗都會有自己的執行環境,和自己的全域物件。

來看以下的範例,建立一個變數,並給它一個值:

1
var a = "hello"

這時候再打開 console ,輸入 window 看看。
可以看到裡面多了一個物件,名稱是 a,值是 “hello”。

由於創造變數時,變數不是在函式中,所以變數會和全域物件連結,這時的 a 就是全域物件。

如果在瀏覽器運行,全域物件就是 window,還會得到一個特殊變數 this ,在使用瀏覽器的情況下, window = this

所以如果要找出 a 的話,就可以使用 this.awindow.a,或是直接輸入 a

Image