Я просматривал вокруг интернета и наткнулся на эту функцию JavaScriptКак понять вывод моей функции в JavaScript
function foo(){
function bar() {
return 3;
}
return bar();
function bar() {
return 8;
}
}
console.log(foo());
=>8
Это действительно запутанной, почему эта функция возвращает 8, когда она вызывается. Я бы предположил, что этот код исчерпал бы содержимое функции и остановился на return bar();
и вернул 3. Что мне здесь не хватает?
Это потому, что объявления функций получить водрузили к верхней части блока. – zakangelle
функции поднимаются - неважно, было ли это объявлено после утверждения, он все равно может быть запущен. Последняя 'bar()' перезаписывает первую. – tymeJV
Просто любопытно, это вопрос чисто академической ценности? Зачем кому-то писать такой код? Серьезно, есть ли веская причина? –