浅层js的个人总结思考
带着问题思考
请描述一下 cookies,sessionStorage 和 localStorage 的区别?
cookie、sessionStorage和localStorage都是调用web实现存储的方式,但不同的是localStorage和sessionStorage拥有5M左右的存储空间而且是完全的本地存储,而cookie则是只有4K的存储空间,但是是可以作为http协议的一部分通过后端传输,将服务器端数据存储在客户端;cookie的数据可以设置自动删除时间,sessionStorage存储的数据在会话结束后自动删除,而localStorage存储的数据如不删除将会永久存储。
我们对localStorage存储可以通过三种方式写入、读取。
<script>
window.localStorage.key=value;//第一种写入方式
window.localStorage[key]=value;//第二种写入方式
window.localStorage.setItme(key,value);//第三种写入方式,推荐
window.localStorage.key;//第一种读取方式
window.localStorage[key];//第二种读取方式
window.localStorage.getItem(key);//第三种读取方式,推荐
window.localStorage.clear();//清空本地所有localStorage数据
window.localStorage.removeItem(key);//删除特定的键值对
</script>
cookie的读写删除,我们可以使用函数封装实现,由于localStorage的兼容性和其他原因,主要的用户信息存储在客户端,仍然是依靠cookie
function addcookie (key,value,times) {//写入cookie,如果key同名,后写入的会覆盖先写入的
let d=new Date();
d.setDate(d.getDate()+times);
document.cookie=key+'='+encodeURIComponent(value)+';expires='+d;
}
function getcookie(key) {//读取存入对应该key的cookie的值
let arr = decodeURIComponent(document.cookie).split('; ');
for (let value of arr) {
let newarr = value.split('=');
if(key===newarr[0]){
return newarr[1];
}
}
}
function delcookie (key) {删除key对应的cookie存储数据
let d=new Date();
d.setDate(d.getDate()-1);
document.cookie=key+'=100;expires='+d;
}