JS趴趴往上走-localStorage
Web Storage
Web Storage是一種能在HTML5中能讓網頁資料儲存於本地端的技術,使用key / value pair的方式 給值或取值,其作用和cookie很像,相起cookie只有4KB的儲存空間,Web Storage擁有5MB空間,但是只有高版本的瀏覽器才能支持,只能儲存字串Web Storage分為兩種:
1.localStorage
2.sessionStorage
其主要差異儲存在localStorage的資料可以一直保存,即使關閉視窗或者分頁,資料依然不會消失;反之sessionStorage則是只要關閉瀏覽器或者分頁資料就會消失
localStorage的使用
存儲Storage:新增/更新資料
//'mylocal'為key,hi為你要儲存的value
localStorage.setItem('mylocal', 'hi');
產生的結果就像下面那張圖
讀取Storage:
讀取存放在localStorahe的資料
//取得存放在mylocal鍵值的value
localStorage.getItem("mylocal")
刪除Storage:
刪除資料
//刪除存放於key(mylocal)和value
localStorage.removeItem('mylocal');
全部刪除:
//localStorage內的key/vlaue全部清空
localStorage.clear();
將JSON存儲到localStorage裏
上面有提到儲存在Web Storage內的值只能是字串,當你使用其他型別存資料,使用getItem取資料你會發現都會變成字串(String)
var test=124;
var test2='hiiii';
var test3=true;
var test4=[5,6,7,'hoo'];
var test5={a:124,b:'yoooo'}
localStorage.setItem('mylocal', test);
localStorage.setItem('mylocal2', test2);
localStorage.setItem('mylocal3', test3);
localStorage.setItem('mylocal4', test4);
localStorage.setItem('mylocal5',test5);
console.log(localStorage.getItem("mylocal")); //124
console.log(localStorage.getItem("mylocal2"));//hiii
console.log(localStorage.getItem("mylocal3"));//true
console.log(localStorage.getItem("mylocal4"));//5,6,7,hoo
console.log(localStorage.getItem("mylocal5"));//[object Object]
//使用typeof查型別:
console.log(typeof(localStorage.getItem("mylocal"))); //string
console.log(typeof(localStorage.getItem("mylocal2")));//string
console.log(typeof(localStorage.getItem("mylocal3")));//string
console.log(typeof(localStorage.getItem("mylocal4")));//string
console.log(typeof(localStorage.getItem("mylocal5")));//string
尤其使用object,返回的值都變成object字,這時就可以使用
JSON.stringify
,先在JSON轉成字串在存放進去,取出來的值就是JSON樣式
var test5=[
{
a:124,
b:'yoooo'
},
{
a:555,
b:'hooooo'
}
]
localStorage.setItem('mylocal5',JSON.stringify(test5));
console.log(localStorage.getItem("mylocal5"));//[{"a":124,"b":"yoooo"},{"a":555,"b":"hooooo"}]
但若你想取出來的是陣列的話則是使用
JSON.parse
var test5=[
{
a:124,
b:'yoooo'
},
{
a:555,
b:'hooooo'
}
]
//轉成字串
localStorage.setItem('mylocal5',JSON.stringify(test5));
//轉成陣列
console.log(JSON.parse(localStorage.getItem("mylocal5")));
最後複習:
- Web Storage有兩種:localStorage和sessionStorage
- 想在一個key值存取多個值要使用array
- 想把陣列轉成字串:
JSON.stringify
;想把字串轉成陣列:JSON.parse
留言
張貼留言