Сообщение от petya
|
И главный вопрос, таки, остается открытым. Каково непосредственное НАЗНАЧЕНИЕ function declaration?
|
объявление функции с доступом к ней в любом месте кода, как после объявления, так и до объявления.
Сообщение от petya
|
пользователь не обязан постоянно думать
|
поднятый вами вопрос не заставляет особо думать. Это на уровне механики. Нужен доступ к функции везде в области видимости - Function Declaration. Нужен доступ только после объявления - Function Expression.
Конструкции if не создают свою область видимости, поэтому код
foo()
if(false) function foo(){console.log("foo")}
не скрывает foo() в условии. Неужели это нужно разжевывать еще тщательнее? Если бы использовали Function Expression в этом коде, то функция не была бы объявлена, так как до нее не дошел бы код.
Извините, я потерял интерес к дальнейшему диалогу в этой ветке.