基本的cookie
//cookie 存储在用户本地终端的数据
//增删改查
//1. 添加cookie 默认路径 在当前目录下 默认有效期 浏览器存续期间
/* document.cookie = "username=yanxingyu"; */
//2.设置cookie的有效期和路径
//2.1 expires
/* let oDate = new Date();
//7天之后的日期
oDate.setDate(oDate.getDate() + 7);
document.cookie = "username=duanfanchao;expires=" + oDate; */
//2.2 路径设置
/* let oDate = new Date();
oDate.setDate(oDate.getDate() + 7);
document.cookie = "username=duanfanchao;expires=" + oDate + ";path=/"; */
//2.3 同名cookie会覆盖
/* document.cookie = "user=aaa";
document.cookie = "user=bbb"; */
//2.4 cookie大小在4k左右,cookie条数在170条左右
/* for (var i = 0; i < 200; i++) {
document.cookie = i + "=a" + i;
} */
//取cookie
//console.log(document.cookie);//取到所有的cookie
//取单个cookie的值,这也是一般使用的情形
/* let strCookie = document.cookie;
let arrCookie = strCookie.split("; ");
//console.log(arrCookie);
for (var i = 0; i < arrCookie.length; i++) {
let arr = arrCookie[i].split("=");
if (arr[0] == "198") {
console.log(arr[1]);
}
} */
//删除cookie
/* let oDate = new Date();
oDate.setDate(oDate.getDate() - 7);
document.cookie = "194=111;expires=" + oDate; */
//cookie存值和取值 都是字符串
document.cookie = "data=111";
let data = { a: 1, b: 2 };
document.cookie = "data=" + data;
//如果存的值是一个JSON对象就要提前转成json字符串 需要通过JSON.stringify()
//如果取的值是一个json字符串,需要用JSON.parse()转成json对象进行进一步处理
console.log(JSON.stringify({ a: 1 }));
console.log(JSON.parse('{"a":1}'));
cookie的封装
//封装函数时考虑的要素 1.功能 2.参数 3.返回值
//增加和修改
//name表示cookie名,val表示cookie值,n表示n天后过期
function setCookie(name, val, n) {
let oDate = new Date();
oDate.setDate(oDate.getDate() + n);
document.cookie = name + "=" + escape(val) + ";expires=" + oDate;
}
setCookie("username", "admin", 7);
setCookie("name", "刘枫", 7);
//获取
function getCookie(name) {
let strCookie = document.cookie;
let arrCookie = strCookie.split("; ");
for (let i = 0; i < arrCookie.length; i++) {
let arr = arrCookie[i].split("=");
if (arr[0] == name) {
return unescape(arr[1]);
}
}
}
console.log(getCookie("username"));
console.log(getCookie("name"));
//删除
function removeCookie(name) {
setCookie(name, 1, -1);
}
removeCookie("username");
removeCookie("data");
cookie.js
function setCookie(name, val, n) {
let oDate = new Date();
oDate.setDate(oDate.getDate() + n);
document.cookie = name + "=" + escape(val) + ";expires=" + oDate;
}
function getCookie(name) {
let strCookie = document.cookie;
let arrCookie = strCookie.split("; ");
for (let i = 0; i < arrCookie.length; i++) {
let arr = arrCookie[i].split("=");
if (arr[0] == name) {
return unescape(arr[1]);
}
}
}
function removeCookie(name) {
setCookie(name, 1, -1);
}