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

nic*_*ist 16 javascript html5 local-storage

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

localStorage.setItem('a',1)
Run Code Online (Sandbox Code Playgroud)

并检查其类型

typeof(localStorage.a)
"string"
Run Code Online (Sandbox Code Playgroud)

它返回字符串,我可以将它强制转换为int供我使用

parseInt(localStorage.a)
Run Code Online (Sandbox Code Playgroud)

我的问题是可以在localStorage中存储整数值,因为我可以为没有类型转换的Javascript对象做什么?

a={};
a.number=1;
typeof(a.number)
"number"
Run Code Online (Sandbox Code Playgroud)

Ada*_*ner 15

我的问题是可以在localStorage中存储整数值,因为我可以为没有类型转换的Javascript对象做什么?

没有.

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


Kai*_*ido 8

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

let val = 42;
localStorage.answer = JSON.stringify(val);
let saved = JSON.parse(localStorage.answer);
console.log( saved === val ); // true
Run Code Online (Sandbox Code Playgroud)

小提琴,因为过度保护stacksnippets不允许的localStorage.

为简单起见,无论如何,你总是要将你在localStorage中保存的内容字符串化为JSON,这样你就不必考虑保存/检索的内容,而且你将避免"[object Object]"被保存.