O objeto global é um Objeto regular do JavaScript que serve a um propósito muito importante: as propriedades deste objeto são os identificadores definidos globalmente que estão disponíveis para um programa JavaScript. Quando o interpretador de JavaScript inicia (ou sempre que um navegador da web carrega uma nova página), ele cria um novo global objeto e dá a ele um conjunto inicial de propriedades que definem:
Constantes globais como undefined, Infinity e NaN Funções globais como isNaN(), parseInt() e eval() Funções de construtor como Date(), RegExp(), String(), Object() e Array() Objetos globais como Math e JSON
As propriedades iniciais do objeto global não são palavras reservadas, mas elas merecem ser tratadas como se fossem.
No Node, o objeto global tem uma propriedade chamada global cujo valor é o próprio objeto global, então você sempre pode se referir ao objeto global pelo nome global em programas Node.
Em navegadores da web, o objeto Window serve como objeto global para todos Código JavaScript contido na janela do navegador que ele representa. Este objeto Window global tem uma propriedade de janela auto-referencial que pode ser usado para se referir ao objeto global. O objeto Window define propriedades globais centrais, mas também define alguns outros globais que são específicos para navegadores da web e JavaScript do lado do cliente. Threads de webservices têm um objeto global diferente do que a janela com a quais estão associados. O código em um webservice pode se referir ao seu objeto global como self.
ES2020 finalmente define global. Este é o caminho padrão para se referir a o objeto global em qualquer contexto. Desde o início de 2020, esse recurso foi implementado por todos os navegadores modernos e pelo Node.