var a;
if (true) {
a = 5;
function a() {}
a = 0;
console.log(a)
}
console.log(a)
我看到了上面的代码,在{}中声明了一个函数。我认为它会打印0 0,但它会打印0 5
这回答了你的问题了吗?ES6中块级函数的确切语义是什么?
—
乔纳斯·威尔姆斯
在严格模式下,它记录
—
某些性能
0 undefined。
@certainPerformance很好,这是可以解释的,但是我无法解释这是否
—
乔纳斯·威尔姆斯
a = 5会成为障碍。据贝尔吉的骗局,function a将其吊起。
似乎在到达函数声明时,将局部作用域的块变量复制到了外部块。
—
乔纳斯·威尔姆斯