Answer

Answer

t.me/js_test

Ответ:

Результатом будет undefined, затем 5.

Объяснение:

Такой результат получился потому, что window – это глобальная переменная, но ничто не мешает объявить такую же локальную.

Директива var window обработается до начала выполнения кода функции и будет создана локальная переменная, т.е. свойство LexicalEnvironment.window:

LexicalEnvironment = {
  window: undefined
}

Когда выполнение кода начнётся и сработает alert, он выведет уже локальную переменную, которая на тот момент равна undefined.

Затем сработает присваивание, и второй alert выведет уже 5.

Код для проверки:

function test() {
  alert( window );
  var window = 5;
  alert( window );
}
test();

Report Page