前幾天面試遇到了一個題是問localStorage和sessionStorage的區別,當時的回答不是很全面,今天就針對這個問題作一下整理(概念,用法,區別)html
HTML5 Web存儲,一個比 cookie 更好的本地存儲方式,什麼是 HTML Web存儲?web
定義:面試
瀏覽器
localStorage 對象存儲的數據沒有時間限制,用於長久保存整個網站的數據安全
經常使用API(localStorage至關於window下面的一個屬性,故可使用 . 方法和 [] 方法)服務器
localStorage.name = 'zhangsan' // 或者 localStorage.['name'] = 'zhangsan' // 或者 localStorage.getIten('name','zhangsan')
1 // 自身方法 2 localStorage.getItem("name"); 3 // []方法 4 localStorage["name"]; 5 // .方法 6 localStorage.name;
1 // 自身方法 2 localStorage.removeItem("name"); 3 // []方法 4 delete localStorage["name"]; 5 // .方法 6 delete localStorage.name
1 localStorage.clear()
1 1 // 經過自身的key 2 2 for (var i=0;i<localStorage.length;i++) { 3 3 console.log(localStorage.key(i)); 4 4 } 5 5 6 6 // 經過for in 循環獲取 7 7 for(var key in localStorage){ 8 8 console.log(key); 9 9 }
1 localStorage.valueOf();取出全部的值
1 localStorage.hasOwnProperty("name") 2 // 若是存在的話返回true,不存在返回false
注:1.localStorage特定於頁面的協議,不在同一域名下不能訪問cookie
2.數據有大小限制,5M左右,不一樣瀏覽器大小會有不一樣session
3.生命週期是永久的,可是數據實際是存在瀏覽器的文件夾下的,卸載瀏覽器數據可能就會刪除性能
4.瀏覽器能夠設置是否能夠訪問數據,若是設置不容許則會訪問失敗網站
5.兼容IE8以上瀏覽器
6.默認狀況下是以字符串形式存儲的,能夠根據我的須要進行數據類型轉換
sessionStorage(會話存儲)