Как выполняется JavaScript
Итак, как выполняется JavaScript?
На самом деле можно выделить два этапа.
Подготовительный этап
На первом этапе происходит инициализация. В глобальный объект window добавляются именованные функции (Function Declaration) — те функции, которые мы обычно в коде и используем.
Поэтому мы можем вызвать функцию до ее объявления в коде. На самом-то деле она уже проинициализировалась.
Помимо функции инициализируются переменные, объявленные через var. Если var не поставить, то мало того, что переменная станет глобальной, так она еще и не будет на подготовительном этапе инициализироваться. При инициализации переменной присваивается специальное значение undefined.
Т.е. в примере ниже в объекте window на момент инициализации будут содержаться следующие свойства :
window = { alertWelcome: function, someName: undefined }
alertWelcome(); function alertWelcome() { alert("Welcome, " + someName); } console.log(someName); var someName = 'Гость'; console.log(someName);
Этап выполнения скрипта
На втором этапе уже идет выполнение скрипта.
Сначала вызывается функция alertWelcome. Переменная someName у нас уже проинициализирована и равна undefined. Поэтому строка 3 выведет «Welcome, undefined».
Строка 5 выведет просто undefined, ведь до строки присваивания значения «Гость’ мы еще не дошли.
И наконец в 7 строке выведется «Гость».
Продолжение следует.