javascript - 为什么for-in循环不能有多个变量声明?

标签 javascript for-loop syntax-error for-in-loop

let example = {
a:20,
b:40,
c:60
}

for(let j=0,i in example){
console.log(example[i]*j);
j++;
}


为什么正常的for循环可以有多个变量声明,而for-in循环却不能?还是我做错了吗?

最佳答案

我能理解的沮丧,您使用相同的关键字,为什么它的行为不相似?但是我认为您应该这样考虑:
for是一种定义循环的方法,只要满足某些条件,就可以使用不同的方式定义该条件。

在常规for循环中,只要中间部分(条件)为true,就可以循环:for(let i = 0; i < 10; i++)
这类似于while循环的工作方式,但这是语法上的捷径:

let i = 0;
while (i < 10) {
    i++;
}

因此,对于该对象中的每个属性,for..in是一个具有另一种条件的for循环,因此,只要您具有更多属性,它便会继续循环。
您也可以这样写:
const keys = Object.keys(example);
for (let i = 0; i < keys.length; i++) {
    const key = keys[i];
    const value = example[key];
}

您还拥有for ... of,它循环遍历数组中的项,但这是以下方面的语法糖:for(let i = 0; i < array.length; i++) { const item = array[i]; }
还请考虑do ... while循环如何类似于while循环,但规则和行为略有不同。与其对语法感到沮丧,不如尝试通过使代码少一些冗长的单词来了解它如何为您节省时间,但是要做到这一点,每种情况都需要有所不同。另一种选择是拥有很多语言关键字。

关于javascript - 为什么for-in循环不能有多个变量声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61532339/

相关文章:

javascript - 如何使用 javascript 从数组的每个项目中删除字符串的特定部分?

math - Windows 批处理文件数学怪异

unity3d - UCE0001 : ';' expected. Insert a semicolon at the end

php - 在代码[PHP/HTML]中发现语法错误

perl - 当我想打印到哈希键中的句柄时,为什么会出现语法错误?

javascript - 如何访问 javascript 中的 laravel .env 变量?

JavaScript 编程方式 .click() 不会在 ReactJS 元素中触发

javascript - Node.js 发送空字体文件

python - Python 中的命名循环

excel - VBA - 减少 if 内的 for 循环