You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何这段极简JavaScript代码会出现运行崩溃问题?

问题排查:无限循环导致程序崩溃

嘿,我一眼就揪出了导致代码崩溃的核心问题——你的第二个for循环陷入了无限循环,直接把运行环境的内存耗干了!

问题代码分析

来看这段出问题的循环:

for (var z = 0; z < 2; z + 1) {
  everyTimeSlotArrayObjectBuilt['1'].push(z)
}

这里的z + 1只是做了一次加法运算,但没有把运算结果赋值回z变量。也就是说,z的值永远停留在初始的0,永远满足z < 2的循环条件,循环会无休止地执行下去,直到浏览器或Node.js因为内存耗尽而崩溃。

修复方案

把循环的增量部分改成z++或者z += 1,这样每次循环都会让z的值递增,循环会正常执行2次后结束:

var everyTimeSlotArrayObjectBuilt = {} 
var thirtyToBeAdd = 0 
for (var i = 0; i < 7; i++) { 
  everyTimeSlotArrayObjectBuilt[i.toString()] = [] 
  everyTimeSlotArrayObjectBuilt[i].push(i) 
} 
// 修复后的循环
for (var z = 0; z < 2; z++) { 
  everyTimeSlotArrayObjectBuilt['1'].push(z) 
} 
console.log(JSON.stringify(everyTimeSlotArrayObjectBuilt))

额外小提示

顺便提一句,第一个循环里everyTimeSlotArrayObjectBuilt[i.toString()] = []之后,你用everyTimeSlotArrayObjectBuilt[i].push(i)其实也能正常工作——因为JavaScript对象的数字键会自动转换为字符串,所以i和i.toString()对应的是同一个键。不过为了代码可读性,建议保持键的写法一致,比如都用i.toString()或者直接用i(JS会自动处理转换)。

内容的提问来源于stack exchange,提问作者leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:00:49