在Javascript中连续循环上使用相同的变量是否可以?

时间:2014-05-03 09:21:44

标签: javascript loops

如果你有一个像

这样的循环设置
for (var i=0,  t=myArray.length; i < t; i++)

一旦该循环完成,是否可以在函数中的下一个非嵌套循环中使用i和t变量?

我一直在编写嵌套循环,就像

一样
for (var i2=0,  t2=anotherArray.length; i2 < t2; i2++)

但对非嵌套循环也是这样做的。我想知道是否需要?

我问,因为当你使用相同的变量时,Flash不喜欢它,无论第二个循环是否嵌套。

感谢您的时间和帮助。

2 个答案:

答案 0 :(得分:2)

除了在循环中进行计算之外,通常不会将循环变量用于任何其他内容。

即使变量在循环外可用,通常也不会使用它。

有时您可能会将另一个变量设置为循环变量的退出值。

 for(i=0;i<max;i++){
   ....
   if (some exit condition that leaves the loop early){
           //should assign value here instead of outside the loop
           exitvalue = i;
           break;
   }
 }

 //exitvalue = i; //can assign the value of i here (try to avoid this)

因此,重用循环变量通常是非常安全的。

答案 1 :(得分:1)

var it在循环所在的范围内声明。

Javascript使用“吊装”。

所以,

for (var i=0, t=myArray.length; i < t; i++) // first loop

等于:

var i,t;
for (i=0, t=myArray.length; i < t; i++)

所以,下次在非嵌套循环中使用相同的变量时,如下所示:

for (var i=10, t=myArray.length; i < t; i++) // second loop

it已经悬挂,因此您只是这样做:

var i = 0;
i = 10;

因此可以在下一个非嵌套循环中使用it变量。