与此reference一样,函数声明语句和变量声明不具有块作用域。所以我要问为什么下面的代码以这种方式执行。
//javascript es6
{
function bar() {
console.log("1");
}
}
function bar() {
console.log("2");
}
bar(); //prints "1" not "2"
this.bar() //also prints "1" not "2"
我知道的是,上面的代码应该在全局范围内考虑这两个函数,但是似乎函数声明受块范围的影响。