Node.js, Browser & Global Objects

1. JavaScript Engines
A JavaScript engine is the program that executes JavaScript code.
Different environments use different engines:
V8 Engine (by Google) → Chrome, Edge, Opera, Brave, Node.js.
Spider Monkey (by Mozilla) → Firefox.
JavaScriptCore (by Apple) → Safari.
Engines parse, compile, and run JavaScript.
2. Node.js Environment (Server-Side JavaScript)
⚡ V8 Engine in Node.js
V8 engine is embedded inside Node.js.
Without Node.js, the V8 engine alone cannot run system-level tasks (like file handling, networking).
Node.js provides the bridge between raw JavaScript execution (V8) and operating system capabilities.
⚡ Special Powers of Node.js
Node.js gives JavaScript additional global objects that are not part of plain JS or browser environment:
setTimeout(callback, ms)
→ Run a function after a delay.setInterval(callback, ms)
→ Run a function repeatedly after intervals.clearTimeout(id)
→ Cancel asetTimeout
.clearInterval(id)
→ Cancel asetInterval
.Microservices & MicroProcess → Handle asynchronous tasks, background jobs, and OS-level processes.
➡️ These features are available via Node.js Global Object.
3. Browser Environment (Client-Side JavaScript)
⚡ Global Object → window
In browsers, the global object is called
window
.Running
console.log(this)
at global scope → refers towindow
.The
window
object provides access to:alert()
→ Popup messages.document
→ Access and modify the DOM.setTimeout
/clearTimeout
→ Timers.setInterval
/clearInterval
→ Repeated timers.
➡️ Browsers automatically provide these APIs because they are needed for interacting with the webpage.
4. Unifying the Global Object
⚡ Problem Before ES2020
In Browser → global object =
window
.In Node.js → global object =
global
.This difference confused developers.
⚡ ES2020 Solution → globalThis
Introduced in ES2020.
A universal way to access the global object across environments:
In Browser →
globalThis === window
.In Node.js →
globalThis === global
.
Example:
console.log(globalThis);
Works the same in both Node.js and Browsers.
5. Key Differences: Browser vs Node.js
Feature | Browser (window ) | Node.js (global ) |
Global Object Name | window | global |
Timers | ✅ Yes | ✅ Yes |
DOM (document, alert) | ✅ Yes | ❌ No |
File System Access | ❌ No | ✅ Yes |
Networking | Limited (AJAX, fetch) | ✅ Full (http, sockets) |
Microservices/Microprocess | ❌ No | ✅ Yes |
ES2020 global access | globalThis | globalThis |
6. Key Takeaways
Node.js = V8 + Special Powers
(system-level features like file system, networking, microservices).Browser = JS Engine + Window Object
(DOM, UI events, alert, document, timers).globalThis
(ES2020) solved the inconsistency of global object references.Engine dependency:
Chrome/Edge/Opera/Brave → V8.
Firefox → Spider Monkey.
Safari → JavaScriptCore.
🔥 So, in simple words:
Browser: makes JS interact with the webpage.
Node.js: makes JS interact with the operating system.
globalThis
: make your code work consistently in both.
Subscribe to my newsletter
Read articles from onii chan directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
