Javascript 本地存储3对象
可以将3个对象添加到本地存储,而不仅仅是值和键?我尝试了一些代码,但没有成功 我想:Javascript 本地存储3对象,javascript,Javascript,可以将3个对象添加到本地存储,而不仅仅是值和键?我尝试了一些代码,但没有成功 我想: 3个对象 3输入文本 保存在页面上保存文本的按钮 很快,不可以。您只能存储字符串类型的键/值。 但是,你必须看看: 他们通过字符串化对象来解释解决方法 CMS报价(接受答案): 很快,不可以。您只能存储字符串类型的键/值。 但是,你必须看看: 他们通过字符串化对象来解释解决方法 CMS报价(接受答案): 不,你不能localStorage(和sessionStorage)只能存储键值对,其中值只能是字符串 您最
很快,不可以。您只能存储字符串类型的键/值。 但是,你必须看看: 他们通过字符串化对象来解释解决方法 CMS报价(接受答案):
很快,不可以。您只能存储字符串类型的键/值。 但是,你必须看看: 他们通过字符串化对象来解释解决方法 CMS报价(接受答案):
不,你不能
localStorage
(和sessionStorage
)只能存储键值对,其中值只能是字符串
您最好使用一些序列化算法来存储普通对象。JSON是最常见的,因此您可以使用JSON.stringify
将对象转换为字符串,使用JSON.parse
将其转换回一个对象-该对象不是“相同的”(即对相同数据的引用),而是等效的对象
这意味着这种情况会发生:
var a = {value: 5},
j = JSON.stringify(a);
var b = a,
c = JSON.parse(j);
a.value = 7;
b.value; // 7
c.value; // 5
但无论如何,这不适用于DOM元素。他们不能被储存,句号。就像任何类中不是object
的任何其他对象一样,除非它们提供了一个toJSON
方法来可靠地将它们转换为字符串,最终可以解析回字符串
JSON.stringify
在内部使用toJSON
方法将对象转换为字符串
例如,Date
对象提供了一个toJSON
方法。您可以使用Date.parse
将字符串转换回:
var d = new Date(),
j = d.toJSON(); // e.g. "2014-02-22T10:35:41.579Z"
var o = new Date(Date.parse(j));
o.getTime() === d.getTime(); // true
o === d; // false
(请记住,IE7及更低版本并不支持JSON。)
但是,您不能对DOM元素执行相同的操作,因此2和3是不可行的。不,您不能
localStorage
(和sessionStorage
)只能存储键值对,其中值只能是字符串
您最好使用一些序列化算法来存储普通对象。JSON是最常见的,因此您可以使用JSON.stringify
将对象转换为字符串,使用JSON.parse
将其转换回一个对象-该对象不是“相同的”(即对相同数据的引用),而是等效的对象
这意味着这种情况会发生:
var a = {value: 5},
j = JSON.stringify(a);
var b = a,
c = JSON.parse(j);
a.value = 7;
b.value; // 7
c.value; // 5
但无论如何,这不适用于DOM元素。他们不能被储存,句号。就像任何类中不是object
的任何其他对象一样,除非它们提供了一个toJSON
方法来可靠地将它们转换为字符串,最终可以解析回字符串
JSON.stringify
在内部使用toJSON
方法将对象转换为字符串
例如,Date
对象提供了一个toJSON
方法。您可以使用Date.parse
将字符串转换回:
var d = new Date(),
j = d.toJSON(); // e.g. "2014-02-22T10:35:41.579Z"
var o = new Date(Date.parse(j));
o.getTime() === d.getTime(); // true
o === d; // false
(请记住,IE7及更低版本并不支持JSON。)
但是,不能对DOM元素执行相同的操作,因此2和3是不可行的