实际上调用了几个名称相同的JavaScript函数中的哪一个?

zin*_*ina 1 javascript scope function

我正在Chrome控制台中尝试此测验:测验

我无法理解为什么这段代码的答案是2

 (function f(){
          function f(){ return 1; }
          return f();
          function f(){ return 2; }
        })();
Run Code Online (Sandbox Code Playgroud)

在这一行中调用哪个f return f();?功能的顺序是什么?

Que*_*tin 7

函数是作用域的(因此,同名函数内的函数只有在内部调用时才会覆盖外部函数)并被提升(因此它们在代码顺序中出现的位置无关紧要),最后一个函数会覆盖第一个函数.