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

JavaScript简易待办列表报错求助:排查代码运行异常原因

解决你的待办列表JavaScript报错问题

先帮你梳理下代码里可能导致报错或异常行为的几个关键问题:

1. 未声明变量引发的作用域错误

在else分支里,你直接使用了localjsonarray但没有用let/const声明,这会让它变成全局变量——在严格模式下会直接抛出ReferenceError,哪怕是非严格模式,也可能引发意想不到的逻辑bug。修改方式很简单,给变量补上声明:

else{
  let getting = localStorage.getItem('filejson')
  let localjsonarray = JSON.parse(getting); // 这里加上let声明
  localjsonarray.push([doc,doc1])
  localStorage.setItem('filejson',JSON.stringify(localjsonarray))
}

2. Submit按钮的默认页面刷新行为

你的按钮类型是type="submit",如果它处于表单上下文(哪怕你没显式写<form>标签,浏览器也可能隐式创建),点击后会触发页面刷新——这会导致你刚写入localStorage的操作还没完成,页面就重置了,看起来像是代码失效或者报错。解决方法二选一:

  • 把按钮类型改成普通按钮:<button type="button" id="btn">Submit</button>
  • 或者在点击事件里阻止默认提交行为:
let btn = document.getElementById(`btn`)
btn.addEventListener('click',(e)=>{
  e.preventDefault(); // 新增这行阻止页面刷新
  console.log('updating list...')
  // 后续逻辑保持不变
});

可选优化:让数据结构更易维护

你现在用数组[doc,doc1]存储标题和描述,时间久了容易搞不清顺序,建议改成对象结构,可读性和扩展性更好:

localjsonarray.push({ title: doc, description: doc1 })

把这些修改完成后,你的待办列表应该就能正常工作啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:12:26