This commit is contained in:
Ilya Kantor 2014-11-16 01:40:20 +03:00
parent 962caebbb7
commit 87bf53d076
1825 changed files with 94929 additions and 0 deletions

View file

@ -0,0 +1,21 @@
**Первый код выведет `function ...`, второй -- ошибку во всех браузерах, кроме IE8-.**
```js
//+ run untrusted
// обычное объявление функции (Function Declaration)
function g() { return 1; };
alert(g); // функция
```
Во втором коде скобки есть, значит функция внутри является не `Function Declaration`, а частью выражения, то есть `Named Function Expression`. Его имя видно только внутри, снаружи переменная `g` не определена.
```js
//+ run untrusted
// Named Function Expression!
(function g() { return 1; });
alert(g); // Ошибка!
```
Все браузеры, кроме IE8-, поддерживают это ограничение видимости и выведут ошибку, `"undefined variable"`.

View file

@ -0,0 +1,20 @@
# Проверка на NFE
[importance 5]
Каков будет результат выполнения кода?
```js
function g() { return 1; }
alert(g);
```
А такого? Будет ли разница, если да -- почему?
```js
(function g() { return 1; });
alert(g);
```