david sharif做了一个 JS 测验,看起来很像——
var foo=1;
function bar(){
return foo;
foo=10;
function foo(){}
var foo =5;
}
typeof bar();//?
据我了解,首先托管函数,然后在内部声明变量。该函数的托管形式将类似于(如果我错了,请纠正我)-
var foo=1;
function bar(){
function foo(){}
var foo;
return foo;
foo=10;
foo =5;
}
typeof bar();//?
为什么 typeof bar() 不是未定义的函数?
是不是因为,在函数执行的时候,找到了第一个 foo (也就是一个函数),没有继续搜索就愉快的返回了。或者是其他东西?
珍惜你的时间。