由于i += i
是i = i + i
的缩写,下面的代码
for (var i = 0; i<=10; i++) {
console.log(i += i) }
应该输出:
1. 0, because 0 += 0 + 0 (i = 0)
2. 2, because 0 += 1 + 1 (i = 2)
3. 6, because 2 += 2 + 2 (i = 6)
4. 12, because 6 += 3 + 3 (i = 12)
然而,虽然控制台确实正确输出了1. - 3.的值,即0、2和6,但我得到的4.的值,即14,并不是我预测的值(上面的第 1-4 行是在执行 for 循环之前输入的)for 循环将输出 (=12
)。
我在这里解释错了什么?
代码本身显然无趣,但我还是很好奇它为什么会这样工作。
最佳答案
所以基本上,您从 0 开始在每次迭代中加一然后加倍。
那么你应该得到:0、2、6、14。我认为你的数学而不是代码在这里是错误的。
关于javascript - 琐碎的 for 循环需要解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33580557/