我对理解这个函数的逻辑感到有点困惑
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
为什么会出错。任何人都可以解决我对两种功能的困惑吗?
对不起,如果我的逻辑出错,请纠正我。提前致谢。