我理解在typescript
/javascript
的for
循环中使用var
和let
的行为,但有人可以解释一下将一个常量变量作为循环变量时的行为是如何以及为什么吗?
for (const i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i)
}, 100 * i);
}
据我理解,当您将变量声明为
const
并初始化其值时,该值无法更改。然而,在
console.log()
中您可以看到值被更改。编译时应该会抛出错误,是我漏掉了什么吗?我创建了两个示例来演示这种行为。 Loop variable as a const Const variable re assignment 能否有人帮助我理解这个问题?
const
和let
都具有块级作用域,并在其定义的块的顶部提升,const
和let
之间唯一的区别是声明为const
的变量不能被重新初始化。 - Kunal Mukherjee