为什么以下代码在StackBlitz和Chrome Dev Tools中产生不同的结果?
我希望i
位于undefined
循环之外的for
(同意Chrome开发工具的结果)。
Stackblitz结果如何处理?
Stackblitz(空白的ES6项目)
Chrome开发工具
答案 0 :(得分:2)
StackBlitz将代码转换为ES5,从而将let
更改为var
。后者是功能范围的,因此在循环外部可见。
答案 1 :(得分:1)
在Chrome中,您正在浏览器中运行本机ES6,Stackblitz就是Babel将ES6编译为ES5,因此让它变成了变量。 var变量在整个块中都有作用域。