babel 将"let"转译为"var",运行时如何知道它应该取决于块范围



这里 babel 将let转译为var,javascript 运行时如何知道它应该取决于块范围。

法典:

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

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

最新更新