有時候爲了緩存數據,或減少對內存的佔用我們將數據存儲到sessionStorage和localStorage中。但是,storage只能存儲字符串的數據,對於JS中常用的數組或對象卻不能直接存儲。
var obj = { name:'sam' };
sessionStorage.obj = obj;
localStorage.obj = obj;
var arr = [1,2,3];
sessionStorage.obj = arr;
localStorage.obj = arr;
上面的寫法都是不對的!但我們可以通過JSON對象提供的parse和stringify將其他數據類型轉化成字符串,再存儲到storage中就可以了。請看下面的代碼。
var obj = { name:'sam' };
var str = JSON.stringify(obj);
//存入
sessionStorage.obj = str;
//讀取
str = sessionStorage.obj;
//重新轉換爲對象
obj = JSON.parse(str);
localStorage也一樣,只是和sessionStorage的存儲時間不一樣。
需要注意的是,JS中的數組本質上也是對象類型,所以上面的代碼對數組也是適用的。