sessionStorage、localStorage存儲(chǔ)數(shù)組與對(duì)象

(sessionStorage、localStorage?存儲(chǔ)對(duì)象、或者數(shù)組時(shí)是需要先轉(zhuǎn)換成為字符串,再讀取時(shí)再把他轉(zhuǎn)換為對(duì)象或者數(shù)組)

先介紹一下localStorage

localStorage對(duì)象是HTML5的客戶(hù)端存儲(chǔ)持久化數(shù)據(jù)的方案。為了能訪問(wèn)到同一個(gè)localStorage對(duì)象,頁(yè)面必須來(lái)自同一個(gè)域名(子域名無(wú)效),使用同一種協(xié)議,在同一個(gè)端口上。

過(guò)期策略:localstorage永久存儲(chǔ),不過(guò)期,除非手動(dòng)刪除,sessionstorage在重啟瀏覽器、關(guān)閉頁(yè)面或新開(kāi)頁(yè)面時(shí)失效。

localStorage是Storage類(lèi)型的實(shí)例。有以下的幾種方法:

①clear():刪除所有值。

②getItem(name):根據(jù)指定的名字name獲取對(duì)應(yīng)的值

③key(index):在指定的數(shù)字位置獲取該位置的名字。

④removeItem(name):刪除由name指定的名值對(duì)

⑤setItem(name,value):為指定名字設(shè)置一個(gè)對(duì)應(yīng)的值


localStorage對(duì)象可以通過(guò)點(diǎn)號(hào)調(diào)用這些方法。

例:使用方法來(lái)存儲(chǔ)數(shù)據(jù)

localStorage.setItem("name","songyuhua");//這樣就用localStorage存儲(chǔ)了一個(gè)名字為name的數(shù)據(jù),數(shù)據(jù)的內(nèi)容為 “songyuhua"


使用方法來(lái)讀取數(shù)據(jù)

localStorage.getItem("name");//這樣就讀取了名字為“name”的數(shù)據(jù)的值。


有時(shí)候,我們需要將數(shù)據(jù)存儲(chǔ)到sessionStorage和localStorage中,這樣做的好處有:

1 緩存數(shù)據(jù)

2 減少對(duì)內(nèi)存的占用


但是,storage只能存儲(chǔ)字符串的數(shù)據(jù),對(duì)于JS中常用的數(shù)組或?qū)ο髤s不能直接存儲(chǔ)。

var obj = { name:'Jim' };

sessionStorage.obj = obj;

localStorage.obj = obj;


var arr = [1,2,3];

sessionStorage.obj = arr;

localStorage.obj = arr;


上面的寫(xiě)法都是不能成功的!但我們可以通過(guò)JSON對(duì)象提供的parse和stringify將其他數(shù)據(jù)類(lèi)型轉(zhuǎn)化成字符串,再存儲(chǔ)到storage中就可以了。請(qǐng)看下面的代碼。


var obj = { name:'Jim' };

var str = JSON.stringify(obj);


//存入

sessionStorage.obj = str;

//讀取

str = sessionStorage.obj;

//重新轉(zhuǎn)換為對(duì)象

obj = JSON.parse(str);


localStorage也一樣,只是和sessionStorage的存儲(chǔ)時(shí)間不一樣。

需要注意的是,JS中的數(shù)組本質(zhì)上也是對(duì)象類(lèi)型,所以上面的代碼對(duì)數(shù)組也是適用的。


var arra=[1,2,3,4];

localStorage.setItem('key',JSON.stringify(arra));

var read=JSON.parse(localStorage.getItem('key'));

console.log(read,read.length);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容