en.javascript.info/1-js/5-functions-closures/1-global-object/1-window-and-variable/solution.md
Ilya Kantor 87bf53d076 update
2014-11-16 01:40:20 +03:00

496 B
Raw Blame History

Ответ: 1.

//+ run  untrusted refresh
if ("a" in window) {
    var a = 1;
}
alert(a);

Посмотрим, почему.

На стадии подготовки к выполнению, из var a создается window.a:

// window = {a:undefined}

if ("a" in window) { // в if видно что window.a уже есть
    var a = 1; // поэтому эта строка сработает
}
alert(a);

В результате a становится 1.