全端勇士之路 Node.js 基礎學習-全域物件

前言

一般來講我們再撰寫 JavaScript 時都知道在瀏覽器上有一個全域物件叫做 Window,但是在 Node.js 上也有一個全域物件

全域物件

首先我們再瀏覽器輸入 window 的時候會看到這個畫面

window

但是如果我們在瀏覽器上輸入 global 你只會得到一個錯誤

ReferenceError

原因很簡單,因為 global 這個全域變數是只存在 Node.js 裡面的。

所以讓我們開啟終端機,輸入 node,然後在輸入 global

global

這些畫面底下的東西就是全域物件,那我們也可以這樣子測試

1
var a = 1;

接下來再輸入 global.a,這時候就會得到 1

global.a

這時候我們也可以再輸入 global 找找看 a 是否在裡面

global

所以基本上我們可以知道 Node.js 的 global 觀念是跟 window 是差不多的

但是這邊有一個很特別的地方就是,如果你是使用 node all.js 的方式來執行,而 all.js 內容是這樣子的話

1
2
var a = 1;
console.log(global);

你會發現 global 底下並沒有 a,這個變數,除非你這樣子寫

1
2
global.a = 1;
console.log(global);

這樣你才會在 global 上看到 a

global

如果說我們希望可以將變數或方法給其他人使用的話,就要使用 global.xxx 來建立,而不是 var

那個這原因是因為 Node.js 是模組化的,所以在不同的檔案中裡面所撰寫的 var a or var b 是不會互相干擾的舉例

all.js

1
var a = 1;

all1.js

1
var a = 2;

除非你是希望大家共用的話才會改用 global.a 來建立。

0%