试图理解这个函数背后的逻辑

时间:2017-04-06 07:27:43

标签: javascript

我对理解这个函数的逻辑感到有点困惑

function foo(){
  var bar = function() {
    return 3;
  };
  function bar() {
    return 8;
  };
return bar();
}
alert(foo());

警报(FOO());打印3.但按照我的逻辑

var bar = function() {
    return 3;
  };
由于var关键字和

是本地函数

function bar() {
    return 8;
  };

是函数foo()的全局函数。此外,java脚本逐行执行,因此调用last的同名函数应该打印输出。所以根据我的逻辑,这个函数应该打印8.但它打印3。

另一个例子

function foo(){
  return bar();
  var bar = function() {
    return 3;
  };
  var bar = function() {
    return 8;
  };
}
alert(foo());

此函数抛出错误Uncaught TypeError: bar is not a function 为什么会出错。任何人都可以解决我对两种功能的困惑吗? 对不起,如果我的逻辑出错,请纠正我。提前致谢。

0 个答案:

没有答案