javascript - 在javascript中,在for循环中声明多个变量

标签 javascript variables for-loop scope

有以下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/

相关文章:

javascript - 通过 php 加载时,JQuery UI 未检测到 CSS 样式

javascript - 我在使用加法产生另一个值时创建两个变量?

variables - gnuplot 将数据文件中的一个数字存储到变量中

r - 嵌套循环中的索引

batch-file - 循环遍历 1 个文件夹中的文件而不是任何子文件夹批处理

javascript - 服务 worker 的网络推送通知

javascript - Css 或 javascript 滚动过渡?

php - for循环只返回最后的结果 - php

javascript - 使用 javascript/jquery 检查函数是否已完成其任务

c - C中未初始化的变量