无法理解这段JavaScript的for循环,求解释为何输出结果为31
为什么你的JavaScript for循环输出31?
完全理解,哪怕是基础问题,搞清楚背后的逻辑也很重要!我来帮你拆解常见的几种导致输出31的for循环场景:
场景1:累加2的幂次(最经典的31输出案例)
大概率你的代码是类似这样的:
let total = 0; for (let i = 0; i < 5; i++) { total += Math.pow(2, i); } console.log(total); // 输出31
咱们一步步算每一次循环的结果:
- 第1次(i=0):
total = 0 + 2⁰ = 1 - 第2次(i=1):
total = 1 + 2¹ = 3 - 第3次(i=2):
total = 3 + 2² = 7 - 第4次(i=3):
total = 7 + 2³ = 15 - 第5次(i=4):
total = 15 + 2⁴ = 31
本质上就是把1、2、4、8、16这几个数加起来,结果刚好是31(也就是2⁵ - 1)。
场景2:固定值累加
另一种常见情况是初始值加多次固定数:
let sum = 1; for (let i = 0; i < 5; i++) { sum += 6; } console.log(sum); // 输出31
这里初始值是1,循环5次每次加6,计算下来就是1 + 6×5 = 31,逻辑更直接。
如果你的代码和上面两种都不一样,把具体代码贴出来,我马上帮你精准分析!
内容的提问来源于stack exchange,提问作者user9452964
相关产品推荐
相关产品推荐

