什么是Cookie?
Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制。
Cookie是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个cookie。
Cookie的作用就是用于解决"如何记录客户端的用户信息":
当用户访问web页面时,他的名字可以记录在Cookie中。
在用户下一次访问该页面时,可以在Cookie中读取用户访问记录。
注意:cookie 的改相当于,重新存储,key的值相同,value值不同,即可实现修改功能。
在这只做了基本封装
cookie中存储的都是字符串
// 设置cookie(可以实现修改)
function setCookie(key,val,ops){
// ops有可能为的值:
// undefined
// {}
// {expires:3}
// {path:"/"}
// {expires:3,path:"/"}
// 处理的是为undefined时
ops=ops||{};
// 处理有效期
let e="";
if(ops.expires){
var d=new Date();
d.setDate(d.getDate()+ops.expires);
e= ";expires=" +d;
}
// 处理路径
// let p="";
// if(ops.path){
// p= ";path="+ops.path;
// }
let p=ops.path ? ";path=" +ops.path : "";
document.cookie=`${key}=${val}${p}${e}`;
}
//获取cookie值
function getCookie(key){
// 1.获取所有cookie
let strC=document.cookie;
// 2.使用"; "分割所有cookie,单独拿到每一条
let arrC = strC.split("; ");
// 3.遍历每一条cookie
for(var i=0;i<arrC.length;i++){
// 4.再次使用"="分割,分割成名字和值独立的状态
// 5.判断数组的第一位的名字是否与传进来要获取的cookie的名字一致
if(arrC[i].split("=")[0]===key){
// 6.如果一致,返回数组的第二位,也就是对应的值
return arrC[i].split("=")[1];
}
}
// 7.循环结束后,如果程序还在执行,说明没有找到一致的值,那就返回空字符
return "";
}
// 删除cookie
removeCookie("abc",{
path:"/"
});
// 删除cookie
function removeCookie(key,ops){
// 1.保证ops是个对象
ops=ops||{};
// 2.ops是对象了,无论如何得有个expires的属性为-1
ops.expires=-1;
// 3.将处理好的ops,给setCookie
setCookie(key,"suibianxie",ops);
}