是 Ray 不是 Array

整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ

Advertisement
2019-06-26 Nodejs

全端勇士之路 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 來建立。

整理這些技術筆記真的很花時間,如果你願意 關閉 Adblock 支持我,我會把這份感謝轉換成更多「踩坑轉避坑」的內容給你!ヽ(・∀・)ノ

Advertisement

你的支持會直接轉換成更多技術筆記

如果我的筆記讓你少踩一個坑、節省 Debug 的時間,
也許你可以請我喝杯咖啡,讓我繼續當個不是 Array 的 Ray ☕

我想要說...

ray — -zsh — 80x24
~ mkdir israynotarray
~ cd israynotarray
israynotarray git:(main) pnpm run start

分享這篇文章

留言

© 2025 Ray. All rights reserved.

Powered by Ray Theme