本地存储正在弄乱我的变量增量

时间:2016-11-23 21:46:24

标签: javascript local-storage

当我将变量设置为localStorage时,就像这样..

localStorage.setItem('gold', gold);

然后我就这样回想起来......

gold = localStorage.getItem('gold');

它弄乱了我以前工作的一些功能,例如

setInterval(function(){
  ore += orepm;
}, 60000);

不是将它从100(每分钟+12)设为112,而是将其设为10012.它基本上将数字添加到起始编号的末尾,就像字符串一样。我相信它与localhost更改格式有关,但我不确定并且不知道如何修复它。

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

parseInt()是你的朋友。虽然从您的问题中不清楚goldore(或确实orepm)的关系,但您应该使用parseInt()(或parseFloat()如果需要)检索值时:

gold = parseInt( localStorage.getItem('gold') );

值得注意parseInt()的一些内容 - 例如:

parseInt('1kjjdfud') == 1;

因此,如果您正确处理NaN,您可能希望使用Javascript的投放机制(即Number('1')):

gold = Number( localStorage.getItem('gold') );

答案 1 :(得分:0)

尝试......

gold = parseInt(localStorage.getItem('gold'), 10);

...将返回的String转换为Number。

修改

添加基数;很高兴在任何时候都包括它。