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