Cru*_*ine 2 javascript typescript ecmascript-6 angular
我了解在/ 中使用var和letin for循环的行为,但是有人可以解释为什么const变量作为循环变量的行为以及行为方式吗?typescriptjavascript
for (const i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i)
}, 100 * i);
}
Run Code Online (Sandbox Code Playgroud)
据我了解,当您将变量声明为const并初始化其值时,该值无法更改
但是您可以在中看到更改的值console.log()。正确编译时必须抛出错误?我在这里缺少什么?
我为此行为创建了2个示例。
有人可以帮我理解吗?
它在Stackblitz中工作,因为它正在运行经过编译的代码:
AppComponent.prototype.test = function () {
var _loop_1 = function (i) {
setTimeout(function () {
console.log(i);
}, 100 * i);
};
for (var i = 0; i < 5; i++) {
_loop_1(i);
}
};
Run Code Online (Sandbox Code Playgroud)
如果您在此处添加代码段,则该代码将无法运行,因此无法正常工作
AppComponent.prototype.test = function () {
var _loop_1 = function (i) {
setTimeout(function () {
console.log(i);
}, 100 * i);
};
for (var i = 0; i < 5; i++) {
_loop_1(i);
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |