【问题标题】:LocalStorage Saving as Strings [duplicate]LocalStorage另存为字符串[重复]
【发布时间】:2017-05-01 17:56:00
【问题描述】:

我正在尝试制作一个超速应用程序,要求用户通过输入输入预定义的速度限制,我使用本地存储来存储数字,但它像“数字”一样存储它,而不仅仅是数字它在它们周围加上引号,使其成为字符串,在我的应用程序中无用。

这里是 JS

 var limit = 20;
 var limitfield = document.getElementById('limit1') //Places limit1 field from HTML into variable 
 limitfield.addEventListener('input', updateStorage); //Adds eventlistener to listen to input in limit1 field then call method

 function updateStorage (){
 localStorage.setItem('limitfield', limitfield.value); //After obtaining the input from eventlistener store the value in variable
  setPreference();
                             }

 function setPreference(){
  limit = localStorage.getItem('limitfield'); //variable created that retrieves value  
                         }

【问题讨论】:

  • 这就是它的工作原理。 Web Storage 存储字符串。如果您需要一个数字,您始终可以在变量前面使用 + 运算符进行转换,或者仅在数字上下文中使用您的变量。
  • 哦,我对此很陌生,所以我不知道。您能告诉我如何将变量放在数字上下文中吗?运算符是什么意思?
  • 始终存储 JSON 格式,您会为您省去很多问题:设置:localStorage.setItem(key, JSON.stringify(value));。获取:var value = JSON.parse(localStorage.key)
  • @Kaiido 如何保存为 JSON 格式?它会解决这个问题吗?

标签: javascript


【解决方案1】:

limit = +localStorage.getItem('limitfield'); - 直接类型转换

limit = localStorage.getItem('limitfield');
var otherVar = someVar - limit;

通过在数字上下文中使用您的变量转换为数字类型(除法运算)。

【讨论】:

  • 添加 + 运算符使其成为数字格式!!!谢谢,但我还是不明白,“+”到底是做什么的?
  • 它会在变量上强制数值上下文并进行转换。
  • 非常感谢,我自己不会发现这个
  • 好吧,不客气:)
猜你喜欢
  • 2018-04-19
  • 2014-12-08
  • 2011-08-31
  • 1970-01-01
  • 2018-08-08
  • 2019-08-13
  • 2021-03-27
  • 1970-01-01
  • 2013-10-25
相关资源
最近更新 更多