对于post语句中变量的循环加法赋值



我在for循环中声明了多个变量,我想在post语句中增加我的变量。我知道这不是对多个变量进行操作的最佳方式。但我很想知道为什么这个数字永远不会超过4。

for (let i1 = 0, i2 = 0; (i2 < s2.length) && (i1 < s1.length); i1, i2 = i1+4, i2+4) {
console.log(i1, i2)
}

但事实的确如此。

for (let i1 = 0, i2 = 0; (i2 < s2.length) && (i1 < s1.length); i1, i2 = i1+=4, i2+=4) {
console.log(i1, i2)
}

它可以归结为

i1, i2 = i1+4, i2+4

i1, i2 = i1+=4, i2+=4

在这两种情况下,都使用逗号运算符,用于计算每个逗号分隔的值。因为第一个i1没有被使用,所以您可以丢弃它们。逗号的运算符优先级最低(1(:

(i2 = i1+4), i2+4

(i2 = i1+=4), i2+=4

第一个代码将在每次迭代中将i2分配给i1+4,然后在一个单独的表达式中,将4添加到i2,但不处理结果-它将不使用。

第二个代码使用+=,因此i1 += 4将把结果分配给i1它将计算为新值,因此

i2 = i1+=4

将结果分配给CCD_ 8和CCD_。(然后,i2 += 4将4加到i2,并将其分配给i2

for (let i1 = 0, i2 = 0; (i2 < 10) && (i1 < 10); i1, i2 = i1+=4, i2+=4) {
console.log(i1, i2)
}

查看i2如何两次分配给。(这真的令人满意吗?(

最新更新