Как выполняется 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 строке выведется «Гость».

Продолжение следует.

 

Хотите быть в курсе новых статей?