What happens to variables declared in loops and the re-used
本问题已经有最佳答案,请猛点这里访问。
在javascript中,变量只有函数作用域。所以它要么是全局的,要么是整个函数中可访问的变量,而不管它在哪里声明(在函数中)。
我想最好的做法是在
如果我在5个循环中声明相同的
1 | for (var i = 0; i < someValue; i+=1) { ... } |
变量是简单地重置为0,还是循环将其初始值设置为什么,一切都将继续?这会导致并发症吗?
如您所见,
如果以后在任何循环之外使用
1 2 3 4 5 6 7 8 | for(var i = 0; i < 4; i++){ /* As the last few steps i is incremented (i == 4), then it is checked with (i < 4), which is false; the loop is done. */ //… } i; // 4 |
因为您通常会重新定义循环头中的每个迭代变量,所以这不会导致任何其他问题。
但是,对于更干净的代码,最好每个循环使用一个变量,或者使
1 2 3 4 5 6 7 | for(let i = 0; i < 20; i++){ // … } for(let i = 0; i < 10; i++){ // This is fine. // … } |