通常我会let i
在以下前两种情况下使用 a :
> for (const i in ["red", "green", "blue"]) { console.log(i) }
0
1
2
> for (const i of ["red", "green", "blue"]) { console.log(i) }
red
green
blue
> for (const i = 0; i < 10; i++) { console.log(i) }
0
TypeError: Assignment to constant variable.
但是Mozilla 文档声明 aconst
可以使用。那么i
区块结束后就不复存在了{ console.log(i) }
?如果是上面的第三种情况,那不是真的吗?
这是一个微妙的规则吗?循环变量forfor ( in )
和for ( of )
loop在块之后就不存在了,但是对于for (;;)
循环,它还存在吗?它有点微妙——它在任何 ES6 规范中吗?