javascript中l(wèi)ocalStorage本地存儲(新增、刪除、修改)使用詳細教程
介紹
現(xiàn)在前端做數(shù)據(jù)存儲,跨頁面?zhèn)髦?,localStorage是一個很好的方式,以鍵值對的方式存儲,也方便取值賦值,下面說一說使用方法和一些常見的使用技巧。
存值共有3種方式,localStorage相當于window對象下面的一個屬性,所以有[]和.調(diào)用,但也具有自身的setItem方法
// 自身方法
localStorage.setItem("name","bonly");
// []方法
localStorage["name"]="bonly";
// .方法
localStorage.name="bonly";取值也是如此,自身的方法是getItem
// 自身方法
localStorage.getItem("name");
// []方法
localStorage["name"];
// .方法
localStorage.name;改變的方式,就是相當于給對應的key重新賦值,就會把原來的值覆蓋掉
// 自身方法
localStorage.setItem("name","TOM");
// []方法
localStorage["name"]="TOM";
// .方法
localStorage.name="TOM";移除某一個值,可以通過對象刪除屬性的關鍵字delete也可以用自身的方法removeItem
// 自身方法
localStorage.removeItem("name");
// []方法
delete localStorage["name"];
// .方法
delete localStorage.name獲取所有的key
// 通過自身的key
for (var i=0;i<localStorage.length;i++) {
console.log(localStorage.key(i));
}
// 通過for in 循環(huán)獲取
for(var key in localStorage){
console.log(key);
}獲取所有的值
localStorage.valueOf();//取出所有的值
清除所有的值
localStorage.clear()
判斷是否具有某個key,hasOwnProperty方法
localStorage.hasOwnProperty("name")
// 如果存在的話返回true,不存在返回false使用技巧
- localStorage特定于頁面的協(xié)議,不是同一域名,不能訪問。
- 有長度限制,5M左右,不同瀏覽器大小會有不同。
- 生命周期是永久的,但是數(shù)據(jù)實際是存在瀏覽器的文件夾下,可能卸載瀏覽器就會刪除。
- 瀏覽器可以設置是否可以訪問數(shù)據(jù),如果設置不允許會訪問失敗。
- 兼容IE8以上瀏覽器
- 只能存儲字符串類型,需要轉(zhuǎn)成字符串存儲。
需要注意的是:
1、瀏覽器限制localStorage的值類型為string類型,如果存儲的數(shù)據(jù)不是string類型,localStorage會自動對數(shù)據(jù)進行類型轉(zhuǎn)換;
2、存儲的Json對象數(shù)據(jù)時,需要使用JSON.stringify()方法將數(shù)據(jù)轉(zhuǎn)換成Json字符串,讀取時,使用JSON.parse()將Json字符串還原回去;
例如:
需要往localStorage中存儲一個對象person:
let person = {
name: 'Ryan Xu',
age: 18;
}如果不使用JSON.stringify()處理:
window.localStorage.setItem('person1', person);
console.log(window.localStorage);對于對象類型數(shù)據(jù),如果不進行處理直接存入localStorage中時,localStorage會自動進行數(shù)據(jù)類型轉(zhuǎn)換,對象就會被轉(zhuǎn)換成[object Object],不是我們想要的結(jié)果;
如果使用JSON.stringify()處理:
window.localStorage.setItem('person1', JSON.stringify(person));
console.log(window.localStorage);從上面可以發(fā)現(xiàn),對于對象類型數(shù)據(jù),儲存到localStorage中時應使用JSON.stringify()方法將數(shù)據(jù)轉(zhuǎn)換成Json字符串再儲存,同樣的,讀取時應將讀取結(jié)果使用JSON.parse()還原回去。
總結(jié)
到此這篇關于javascript中l(wèi)ocalStorage本地存儲(新增、刪除、修改)使用的文章就介紹到這了,更多相關js localStorage本地存儲內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- JavaScript 本地存儲localStorage完全指南及應用場景
- javascript中本地存儲localStorage,sessionStorage,cookie,indexDB的用法與使用場景匯總
- Javascript本地存儲localStorage看這一篇就夠了
- JavaScript本地數(shù)據(jù)存儲sessionStorage與localStorage使用詳解
- JavaScript中本地存儲(LocalStorage)和會話存儲(SessionStorage)的使用
- JS localStorage存儲對象,sessionStorage存儲數(shù)組對象操作示例
- JavaScript使用localStorage存儲數(shù)據(jù)
- JavaScript和jQuery存儲localStorage的具體實現(xiàn)方法詳解
相關文章
Makefile/cmake/node-gyp中區(qū)分判斷不同平臺的方法
今天小編就為大家分享一篇關于Makefile/cmake/node-gyp中區(qū)分判斷不同平臺的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
javascript 從if else 到 switch case 再到抽象
大家覺得在接手遺留代碼時,見到什么東東是最讓人感到不耐煩的?復雜無比的 UML ?我覺得不是。2010-07-07
使用純javascript實現(xiàn)經(jīng)典掃雷游戲
本文給大家分享的是個人剛開始學習javascript的時候?qū)懙姆聎indows經(jīng)典的掃雷游戲的代碼,當時只是寫了下來,沒加注釋,這里補上,有需要的小伙伴可以參考下。2015-04-04
深入理解JavaScript系列(27):設計模式之建造者模式詳解
這篇文章主要介紹了深入理解JavaScript系列(27):設計模式之建造者模式詳解,建造者模式可以將一個復雜對象的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示,需要的朋友可以參考下2015-03-03

