init
This commit is contained in:
parent
06f61d8ce8
commit
f301cb744d
2271 changed files with 103162 additions and 0 deletions
|
@ -0,0 +1,19 @@
|
|||
Ответ: `5`.
|
||||
|
||||
```js
|
||||
//+ run untrusted
|
||||
var a = 5;
|
||||
|
||||
function a() { }
|
||||
|
||||
alert(a);
|
||||
```
|
||||
|
||||
Чтобы понять, почему -- разберём внимательно как работает этот код.
|
||||
<ol>
|
||||
<li>До начала выполнения создаётся переменная `a` и функция `a`. Стандарт написан так, что функция создаётся первой и переменная ее не перезаписывает. То есть, функция имеет приоритет. Но в данном случае это совершенно неважно, потому что...
|
||||
</li>
|
||||
<li>...После инициализации, когда код начинает выполняться -- срабатывает присваивание `a = 5`, перезаписывая `a`, и уже не важно, что там лежало.</li>
|
||||
<li>Объявление `Function Declaration` на стадии выполнения игнорируется (уже обработано).</li>
|
||||
<li>В результате `alert(a)` выводит 5.</li>
|
||||
</ol>
|
|
@ -0,0 +1,15 @@
|
|||
# Функция и переменная
|
||||
|
||||
[importance 3]
|
||||
|
||||
Каков будет результат кода? Почему?
|
||||
|
||||
```js
|
||||
var a = 5;
|
||||
|
||||
function a() { }
|
||||
|
||||
alert(a);
|
||||
```
|
||||
|
||||
P.S. Это задание -- учебное, на понимание процесса инициализации и выполнения. В реальной жизни мы, конечно же, не будем называть переменную и функцию одинаково.
|
Loading…
Add table
Add a link
Reference in a new issue