1

When I call in console foo(), it returns 4.

function foo()
{
    function bar(){
        return 3;
    };

    return bar();

    function bar(){
        return 4;
    }
}

Does it mean that return only interrupts during execution not during declaration? Your explanations are invaluable.

D-side
  • 8,758
  • 3
  • 26
  • 43
Adib Aroui
  • 4,891
  • 5
  • 41
  • 91

1 Answers1

0

It returns 4 because function declarations are parsed and assigned before everything else. It is not like var f = function () { ... };.

Alex Netkachov
  • 12,709
  • 5
  • 49
  • 82