init
This commit is contained in:
parent
06f61d8ce8
commit
f301cb744d
2271 changed files with 103162 additions and 0 deletions
|
@ -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`.
|
|
@ -0,0 +1,19 @@
|
|||
# var window
|
||||
|
||||
[importance 5]
|
||||
|
||||
Каков будет результат выполнения этого кода? Почему?
|
||||
|
||||
```js
|
||||
function test() {
|
||||
|
||||
alert(window);
|
||||
|
||||
var window = 5;
|
||||
|
||||
alert(window);
|
||||
}
|
||||
|
||||
test();
|
||||
```
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue