我将如何在对象上使用localStorage

Lek*_*ens 3 javascript local-storage

请有人弄清楚我为什么需要做JSON.stringify(localStorage.setItem('data')); 然后JSON.parse(localStorage.getItem('data'))在我可以取回数据对象之前使用。

Que*_*tin 5

简而言之:因为本地存储只能存储字符串。

更长的答案是对象是复杂的数据结构,它在后台由对计算机内存不同部分的引用组成。您不能只将它们转储到存储区,因为当您读回数据时,数据将不存在于内存的那些部分。

因此,您需要以某种方式序列化数据。

可以编写localStorage API 自动执行此操作,但仅在某些情况下才可以。并非如此,您必须手动进行操作,这意味着您被迫知道自己在做什么,(a)如果丢失数据,这不是由于localStorage API怪异而神秘,(b)您可以在提高内存效率(localStorage给您有限的空间)和简单(仅使用JSON.stringify)之间进行选择。