全域環境與全域物件

在 JS 中,無論你寫的程式碼在何時、何處執行,都會被包在一個 JS 為你準備的執行環境之中,稱之為’全域環境’,全域顧名思義就是在任何區域都可以被取得,在其內所建立的物件也稱之為’全域物件’。

何為全域 ?

在開發前端網頁時,我們基本會有一個 html 檔案,並載入如 app.js 的 JS 程式碼如下:

1
2
3
4
5
6
<html>
<head></head>
<body>
<script scr="app.js"></script>
</body>
</html>

在瀏覽器內打開這個檔案會發現,即使在 app.js 中沒有寫任何的內容也會在全域環境中看到以下兩項是 JS 幫你建立好的

  • 變數 - this
    this 是 JS 執行環境自動幫你產生的全域變數,開啟瀏覽器 console 即可查看其內容

  • Global Object - window
    打開瀏覽器,在 console 內輸入 this 並點選打開內層,就會發現裡面有一個 window 的全域物件,其所代表的就是瀏覽器這個畫面本身,所以在後端 node.js 中輸入 this 就不會是 window 這個全域物件,但仍會有一個 JS 幫你產生的全域物件,因為 JS 執行環境已被產生

建立變數

接下來我們在 app.js 內寫一點程式碼如下:

1
2
3
4
5
// app.js

var a = 'Hellow World';

function b = {};

接著打開瀏覽器 console 可以透過輸入以下兩種方式找到我們宣告的變數

  • a
  • window.a

結論

只要不是在函式內宣告的變數就是全域變數