对于循环,让作用域Stackblitz与Chrome开发工具

时间:2018-10-03 23:02:10

标签: javascript for-loop ecmascript-6 let

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

我希望i位于undefined循环之外的for(同意Chrome开发工具的结果)。

Stackblitz结果如何处理?


Stackblitz(空白的ES6项目)

enter image description here


Chrome开发工具

enter image description here

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

在Chrome中,您正在浏览器中运行本机ES6,Stackblitz就是Babel将ES6编译为ES5,因此让它变成了变量。 var变量在整个块中都有作用域。