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
windowobject 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.