有以下javascript代码
// note: declaring i in this loop
for( var i=0; i<args.length; i++ ) {
var elem = args[i];
...
if( elem.attr == 'class' ) {
// note declaring arr and i in this loop
for( var arr=elem.val.split(' '), i=0; i<arr.length; i++ ) {
element.classList.add(arr[classCt]);
}
continue;
}
}
问题是第二个 for
循环中的 i
与第一个 for
中声明的 i
相同> 循环。
认为 var
构造允许声明多个变量,并用逗号分隔。
当在第二个循环中将 i
更改为 classCt
时,代码按预期工作
最佳答案
那里只有一个作用域,因此只能有一个同名变量。你是对的, var 允许声明多个变量,用逗号分隔,但你不能在同一范围内声明两个具有相同名称的不同变量。您只是重新声明一个已经存在的变量。
要么将其更改为 classCt
,要么按照我的做法为嵌套循环迭代器使用变量 j
(等等):
var i, j, k, l;
for(i = 0; i < 10; i++){
for(j = 0; j < 10; j++){
for(k = 0; k < 10; k++){
for(l = 0; l < 10; l++){
}
}
}
}
关于javascript - 在javascript中,在for循环中声明多个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755357/