【发布时间】:2017-08-25 10:40:25
【问题描述】:
foo();
if (true) {
function foo() {
console.log(1);
}
} else {
function foo() {
console.log(2)
}
}
在 chrome 中显示 Uncaught TypeError,但在 safari 中显示 2。
【问题讨论】:
-
那些函数定义不会被提升,所以我希望它在任何环境中都是未捕获的类型错误。运行代码 sn-p 也会产生该错误
-
我们不是已经对这个问题进行了很好的 QA 吗?我没有找到他们
-
@RobG 您能否详细说明一下或链接到您所指的规范部分?
-
@jakeehoffmann——给我一点时间……
-
问题的本质是内部块中的这种函数声明(即不在范围级别)总是根据浏览器给出不同的结果。现在只是被禁止了。
标签: javascript