В процессе запуска и исполнения разнообразных кодов интерпретатор JavaScript создаёт глобальный объект. Такой объект имеет свойства, которые являются глобальными идентификаторами программы. Процесс объявления глобальной переменной можно относить к фактическому определению свойства глобального объекта. В этом случае, переменные связаны с самим глобальным объектом. Именно благодаря этому имеется возможность ссылаться на них как к свойствам глобального объекта.

В коде глобальные переменные JavaScript являются свойствами глобального объекта. Локальные же переменные находятся внутри блока, включая вложенные блоки и тоже являются свойствами объекта вызова («call object» ES3) или записью с описанием окружения («declarative environment record» ES5 — 10.2, ES6 — 8.1.1), т.е. связующим звеном между идентификаторами и отдельными переменными и функциями, основанным на структуре вложенного кода ECMAScript.

Если JavaScript-код не является частью определенного блока, он работает в таком контексте исполнения, где в целях определения переменных применяется глобальный объект. При этом, каждый блок JavaScript обладает собственным, так сказать, эксклюзивным контекстом исполнения со своим описанием окружения.