javascript - babel 将 `let` 转换为 `var` ,运行时如何知道它应该取决于 block 作用域

标签 javascript ecmascript-6 babeljs var let

<分区>

这里 babel 将 let 转换为 var,javascript 运行时如何知道它应该取决于 block 作用域。

代码:

for(let  i=10; i<11; i++){
  console.log(12);
}

babel 将其编译成:

"use strict";

for (var i = 10; i < 11; i++) {
  console.log(12);
}

我用的是try it out,在babel首页选择了es2015

最佳答案

编译器会知道该函数是否应该包装在另一个函数调用中以创建它自己的闭包。在您的情况下,这无关紧要,因此编译器知道不需要另一个函数调用。

关于javascript - babel 将 `let` 转换为 `var` ,运行时如何知道它应该取决于 block 作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62667540/

相关文章:

javascript - 使用 Javascript 加载其他外部 Javascripts

node.js - FFmpeg 淡出音频过滤器(淡出)没有被应用于迭代地剪辑的轨道

javascript - EcmaScript 6 Map() 与 new Map()

node.js - 无法使用@babel/preset-env运行node.js文件

javascript - (为什么)我不能从生成器中抛出异常吗?

javascript - 自耕农 : angular-fullstack-generator cannot find module 'babel-runtime/helpers/interop-require-default'

javascript - 直接客户端到客户端的消息

javascript - 具有不同样式的多个 jQuery UI 日期选择器

reactjs - 使用 React、Typescript 和 ES6 进行 Jest 测试

javascript - 计算tinymce中的字符数