joe*_*joe 7 javascript scope async-await
下面的代码应该工作吗?
if(true) {
async function bar() {
console.log("hello");
}
}
bar();
Run Code Online (Sandbox Code Playgroud)
Chrome 80 和 Firefox 72 都抛出了未定义的ReferenceError说法bar。所以看起来async function bar() {...}声明是块范围的,而function bar() {...}声明是函数范围的?如果是这种情况,我会感到困惑,但是有人可以通过指向规范相关部分的链接为我确认这一点吗?
另外,有没有办法async function在块内声明时声明函数范围?
似乎
async function bar() {...}声明是块范围的
是的,就像平常一样。函数声明通常是块范围的。
...而
function bar() {...}声明是函数作用域的?
不是真的,除非出于遗留原因在草率模式下。这不会影响async function和function*声明,它不需要任何向后兼容性。
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |