【发布时间】:2017-04-25 17:52:38
【问题描述】:
我在网上找到了这个简短的 JavaScript sn-p:
var foo = 1;
function bar() {
foo = 10;
return;
function foo() {}
}
bar();
console.log(foo);
我希望函数 bar() 中的 return 语句之后的内容被忽略,并且变量 foo 最后等于 10。然而令我惊讶的是,控制台输出了一些非常不同的东西:
1
现在,当我删除 return 语句后的行时
var foo = 1;
function bar() {
foo = 10;
return;
}
bar();
console.log(foo);
控制台按预期打印出来:
10
谁能解释一下是什么原因导致 foo 在之前版本的代码中返回 1?
【问题讨论】:
标签: javascript return evaluation