Javascript 本地存储正在破坏我的可变增量

Javascript 本地存储正在破坏我的可变增量,javascript,local-storage,Javascript,Local Storage,当我将变量设置为localStorage时,就像这样 localStorage.setItem('gold', gold); 然后我像这样回忆起他们 gold = localStorage.getItem('gold'); 例如,它把我以前使用过的一些功能搞砸了 setInterval(function(){ ore += orepm; }, 60000); 它不是从100(+12每分钟)变为112,而是变为10012。它基本上是把数字加到起始数字的末尾,就像一个字符串。我相信这与lo

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

localStorage.setItem('gold', gold);
然后我像这样回忆起他们

gold = localStorage.getItem('gold');
例如,它把我以前使用过的一些功能搞砸了

setInterval(function(){
  ore += orepm;
}, 60000);
它不是从100(+12每分钟)变为112,而是变为10012。它基本上是把数字加到起始数字的末尾,就像一个字符串。我相信这与localhost改变格式有关,但我不确定,也不知道如何修复它

谢谢你的帮助

是你的朋友。虽然您的问题不清楚
gold
ore
(或者实际上是
orepm
)的关系,但在检索值时,您应该使用
parseInt()
(或者如果需要):

gold = parseInt( localStorage.getItem('gold') );
值得注意的是
parseInt()
的一些内部功能,例如:

parseInt('1kjjdfud') == 1;
因此,如果正确处理
NaN
,您可能希望使用Javascript的强制转换机制(即):

gold = Number( localStorage.getItem('gold') );
他是你的朋友。虽然您的问题不清楚
gold
ore
(或者实际上是
orepm
)的关系,但在检索值时,您应该使用
parseInt()
(或者如果需要):

gold = parseInt( localStorage.getItem('gold') );
值得注意的是
parseInt()
的一些内部功能,例如:

parseInt('1kjjdfud') == 1;
因此,如果正确处理
NaN
,您可能希望使用Javascript的强制转换机制(即):

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

gold = parseInt(localStorage.getItem('gold'), 10);
。。。将返回的字符串转换为数字

编辑

添加基数;始终包含它很好。

试试

gold = parseInt(localStorage.getItem('gold'), 10);
。。。将返回的字符串转换为数字

编辑


添加基数;一直包含它很好。

Hint#1:
typeof
黄金与矿石的关系如何?Hint#1:
typeof
黄金与矿石的关系如何?感谢我刚才用黄金作为设置本地存储项目的示例,我要收集大量物品,因此这非常有用。如果我可以添加,你就不必分析它来设置正确的项目了吗?.I.Smith.值得考虑的是,用<代码> JSON.StrugIFY()/<代码>保存整个JSON对象,并用<代码> JSON.PARSE()来检索它。而不是存储/检索单个键和字符串值。感谢我刚才使用gold作为示例来设置localStorage项,我要收集大量项,因此这非常有用。如果我可以添加,你就不必分析它来设置正确的项目了吗?.I.Smith.值得考虑的是,用<代码> JSON.StrugIFY()/<代码>保存整个JSON对象,并用<代码> JSON.PARSE()来检索它。而不是存储/检索单个键和字符串值。不要忘记
parseInt
的第二个参数。谢谢;忘了那个。。。添加了它。@Barmar确实没有理由添加它。我知道
parseInt
将默认为基数10,但我始终发现最好将其作为一般经验法则。这只是我根据良好的编码实践分类的一个方面。功能清晰通常是一个很好的经验法则……这是不必要的冗余。“良好的编码实践”--它背后没有目标,不确定添加一个不会改变任何东西的参数如何使代码变得更好\_(ツ)_/“别忘了
parseInt
的第二个参数。谢谢;忘了那一个…添加了它。@Barmar真的没有理由添加它。我知道
parseInt
将默认为基数10,但我总是发现最好将其作为一般经验法则包含在内。这只是我在良好的c中分类的一个东西代码编写实践。功能清晰通常是一个很好的经验法则……这是不必要的冗余。“良好的代码编写实践”-背后没有目标,不确定添加一个不会改变任何东西的参数如何使代码变得更好
”\_(ツ)_/“