renovations
This commit is contained in:
parent
0eec1aaccb
commit
c018a2db03
56 changed files with 459 additions and 594 deletions
|
@ -1,19 +0,0 @@
|
|||
Ответ: `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>
|
|
@ -1,15 +0,0 @@
|
|||
# Функция и переменная
|
||||
|
||||
[importance 3]
|
||||
|
||||
Каков будет результат кода? Почему?
|
||||
|
||||
```js
|
||||
var a = 5;
|
||||
|
||||
function a() { }
|
||||
|
||||
alert(a);
|
||||
```
|
||||
|
||||
P.S. Это задание -- учебное, на понимание процесса инициализации и выполнения. В реальной жизни мы, конечно же, не будем называть переменную и функцию одинаково.
|
Loading…
Add table
Add a link
Reference in a new issue