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

点击游戏中localStorage变量使分数追加文本而非数字,如何修复?

解决点击游戏分数追加1而非加1的问题

问题根源很明确:localStorage里存储的所有数据都是字符串类型,你直接把它赋值给变量后,变量也会是字符串。这时候执行+1操作,JS会把它当成字符串拼接,所以原本的"1"加上"1"就变成了"11"。

给你两个关键解决步骤:

  • 从localStorage取值时,用parseInt()或Number()把字符串转成数值,同时处理首次无存储值的情况(避免出现NaN):
    let score = parseInt(localStorage.getItem('score')) || 0;
    
  • 更新分数后,再把数值转回字符串存回localStorage,同时同步更新页面显示:

举个完整的按钮点击处理示例:

// 初始化分数
let score = parseInt(localStorage.getItem('clickScore')) || 0;
// 同步页面显示
document.getElementById('scoreText').textContent = `(${score})`;

// 绑定点击事件
document.querySelector('.click-btn').addEventListener('click', () => {
  score += 1;
  // 存回localStorage
  localStorage.setItem('clickScore', score.toString());
  // 更新页面显示
  document.getElementById('scoreText').textContent = `(${score})`;
});

如果你的分数涉及小数,就用parseFloat()代替parseInt(),根据实际需求调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:18:09