Источник: http://learn.javascript.ru/global-object
Глобальными называют переменные и функции, которые не находятся внутри какой-то функции.В JavaScript все глобальные переменные и функции являются свойствами специального объекта, который называется «глобальный объект» (global object).
В браузере этот объект явно доступен под именем window. Присваивая или читая глобальную переменную, мы, фактически, работаем со свойствами window.
var a = 5; // объявление var создаёт свойство window.a
alert(window.a); // 5
Выполнение скрипта происходит в две фазы:
(=)
значений переменных происходит на второй фазе, когда поток выполнения доходит до соответствующей строчки кода.// По окончании инициализации, до выполнения кода:
// window = { f: function, a: undefined, g: undefined }
var a = 5; // при инициализации даёт: window.a=undefined
function f(arg) { /*...*/ } // при инициализации даёт: window.f = function
var g = function(arg) { /*...*/ }; // при инициализации даёт: window.g = undefined