是否可以像在 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 许可协议

阅读 587
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 翻译
子站问答
访问
宣传栏