如果你有一个像
这样的循环设置for (var i=0, t=myArray.length; i < t; i++)
一旦该循环完成,是否可以在函数中的下一个非嵌套循环中使用i和t变量?
我一直在编写嵌套循环,就像
一样for (var i2=0, t2=anotherArray.length; i2 < t2; i2++)
但对非嵌套循环也是这样做的。我想知道是否需要?
我问,因为当你使用相同的变量时,Flash不喜欢它,无论第二个循环是否嵌套。
感谢您的时间和帮助。
答案 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
i
或t
在循环所在的范围内声明。
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
i
和t
已经悬挂,因此您只是这样做:
var i = 0;
i = 10;
i
和t
变量。