For loop let scope stackblitz vs chrome 开发工具

For loop let scope stackblitz vs chrome dev tools

为什么以下代码在 StackBlitz 和 Chrome Dev Tools 中产生不同的结果?

我希望 ifor 循环之外 undefined(同意 Chrome Dev Tools 结果)。

Stackblitz 结果是怎么回事?


Stackblitz(空白 ES6 项目)


Chrome 开发工具

StackBlitz 将代码转换为 ES5,从而将 let 更改为 var。后者是函数范围的,因此它在循环外是可见的。

在 Chrome 中,您是浏览器中的 运行 原生 ES6,Stackblitz 是将 ES6 编译为 ES5 的 Babel,因此 let 将成为一个 var。 var 变量在整个块中都有作用域。