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
  • 9,150
  • 3
  • 28
  • 44
Adib Aroui
  • 4,981
  • 5
  • 42
  • 94

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
  • 13,172
  • 6
  • 53
  • 85