我在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
如何两次分配给。(这真的令人满意吗?(