是否可以像在 Javascript 对象中那样在 localStorage 中存储整数值并在不进行类型转换的情况下提取它?

新手上路,请多包涵

当我将整数值分配给 localStorage 项目时

localStorage.setItem('a',1)

并检查它的类型

typeof(localStorage.a)
"string"

它返回 string ,我可以将它转换为 int 供我使用

parseInt(localStorage.a)

我的问题是,是否可以在 localStorage 中存储整数值,就像我可以在不进行类型转换的情况下对 Javascript 对象所做的那样?

 a={};
a.number=1;
typeof(a.number)
"number"

原文由 nickalchemist 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 583
2 个回答

我的问题是,是否可以在 localStorage 中存储整数值,就像我可以在不进行类型转换的情况下对 Javascript 对象所做的那样?

不。

存储对象是简单的键值存储,类似于对象,但它们在页面加载期间保持不变。键可以是字符串或整数, 但值始终是字符串[资源]

原文由 Adam Zerner 发布,翻译遵循 CC BY-SA 3.0 许可协议

实际上你可以,如果我们同意解析与类型转换不同:

 let val = 42;
localStorage.answer = JSON.stringify(val);
let saved = JSON.parse(localStorage.answer);
console.log( saved === val ); // true

小提琴,因为过度保护的堆栈片段不允许本地存储。

为简单起见,您应该始终将保存在 localStorage 中的内容字符串化为 JSON,这样您就不必考虑保存/检索的内容,并且可以避免 "[object Object]" 被保存。

原文由 Kaiido 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏