For loop let scope stackblitz vs chrome 开发工具
For loop let scope stackblitz vs chrome dev tools
为什么以下代码在 StackBlitz 和 Chrome Dev Tools 中产生不同的结果?
我希望 i
在 for
循环之外 undefined
(同意 Chrome Dev Tools 结果)。
Stackblitz 结果是怎么回事?
Stackblitz(空白 ES6 项目)
Chrome 开发工具
StackBlitz 将代码转换为 ES5,从而将 let
更改为 var
。后者是函数范围的,因此它在循环外是可见的。
在 Chrome 中,您是浏览器中的 运行 原生 ES6,Stackblitz 是将 ES6 编译为 ES5 的 Babel,因此 let 将成为一个 var。 var 变量在整个块中都有作用域。
为什么以下代码在 StackBlitz 和 Chrome Dev Tools 中产生不同的结果?
我希望 i
在 for
循环之外 undefined
(同意 Chrome Dev Tools 结果)。
Stackblitz 结果是怎么回事?
Stackblitz(空白 ES6 项目)
Chrome 开发工具
StackBlitz 将代码转换为 ES5,从而将 let
更改为 var
。后者是函数范围的,因此它在循环外是可见的。
在 Chrome 中,您是浏览器中的 运行 原生 ES6,Stackblitz 是将 ES6 编译为 ES5 的 Babel,因此 let 将成为一个 var。 var 变量在整个块中都有作用域。