首页 > HTML5存储

HTML5存储

sessionStorage存储的数据类型具体有哪些 我去搜索了一下,基本都是说字符串类型。我自己也试了一下,sessionStorage能存储字符串类型数据和数组数据。但不能存储对象类型,需要先转化成字符串,才能存放。但我想数组也是对象啊,怎么能存储。有没有哪位大神能详细说说的

var arr = [1,2,3];
window.sessionStorage.setItem('key',arr);
document.body.innerHTML = window.sessionStorage.getItem('key');

这样是能行的

var json = {'aaa': 'aaa','bbb': 'bbb'};
window.sessionStorage.setItem('key',json);
document.body.innerHTML = window.sessionStorage.getItem('key');

这样是不行的,必须先把json转化成string类型


一般存储数据的接口只能支持基本类型(数值、字符串等)。在js中,Array可以自动转换成字符串,例如[1, 2, 3]可以转换成"1, 2, 3",注意这转换过来的数据不是json格式的。普通的Object对象就不支持了。

var obj = { a:1, b:2 }
var arr = [1, 2, 3];
Object.prototype.toString = function(){
    return JSON.stringify(this);
}
Array.prototype.toString = function(){
    return JSON.stringify(this);
}
console.log('' + obj);//可以试试注释了上面Object.prototype的修改的结果
console.log('' + arr);//可以试试注释了上面Array.prototype的修改的结果

不过在项目的使用中,还是不要修改Object.prototype的方法,自己转换成字符串就可以了。

【热门文章】
【热门文章】