Global object
The global object in JavaScript is an object which represents the global scope.
Note: Globally available objects, which are objects in the global scope, are sometimes also referred to as global objects, but strictly speaking, there is only one global object per environment.
In each JavaScript environment, there's always a global object defined. The global object's interface depends on the execution context in which the script is running. For example:
- In a web browser, any code which the script doesn't specifically start up as a background task has a
Window
as its global object. This is the vast majority of JavaScript code on the Web. - Code running in a
Worker
has aWorkerGlobalScope
object as its global object. - Scripts running under Node.js have an object called
global
as their global object.
The globalThis
global property allows one to access the global object regardless of the current environment.
var
statements and function declarations at the top level of a script create properties of the global object. On the other hand, let
and const
declarations never create properties of the global object.
The properties of the global object are automatically added to the global scope.
In JavaScript, the global object always holds a reference to itself:
console.log(globalThis === globalThis.globalThis); // true (everywhere)
console.log(window === window.window); // true (in a browser)
console.log(self === self.self); // true (in a browser or a Web Worker)
console.log(frames === frames.frames); // true (in a browser)
console.log(global === global.global); // true (in Node.js)
See also
- Related glossary terms:
globalThis
Window
WorkerGlobalScope
Window.window
Window.self
Window.frames
WorkerGlobalScope.self
global