This commit is contained in:
Ilya Kantor 2014-10-26 22:10:13 +03:00
parent 06f61d8ce8
commit f301cb744d
2271 changed files with 103162 additions and 0 deletions

View file

@ -0,0 +1,29 @@
Результатом будет `undefined`, затем `5`.
```js
//+ run
function test() {
alert(window);
var window = 5;
alert(window);
}
test();
```
Такой результат получился потом, что `window` -- это глобальная переменная, но ничто не мешает объявить такую же локальную.
Директива `var window` обработается до начала выполнения кода функции и будет создана локальная переменная, т.е. свойство `LexicalEnvironment.window`:
```js
LexicalEnvironment = {
window: undefined
}
```
Когда выполнение кода начнется и сработает `alert`, он выведет уже локальную переменную, которая на тот момент равна `undefined`.
Затем сработает присваивание, и второй `alert` выведет уже `5`.

View file

@ -0,0 +1,19 @@
# var window
[importance 5]
Каков будет результат выполнения этого кода? Почему?
```js
function test() {
alert(window);
var window = 5;
alert(window);
}
test();
```