一、Cookie的属性
1.name:自定义的键;
2.value:键对应的值(键值);
3.domain:主机(主域名);
4.path:表达这个cookie属于该域名的哪个基路径的,/表示可以匹配该域名下的所有路径,/news表示只能匹配该域名下/news和/news/title等等/new下的路径,并且cookie对于端口多少并不在乎,只要域名符合即可(相对路径,一般我们都储存在根目录下 path=/,表示匹配所有);
5.expire:过期时间(用日期对象设置);
6.secure:是否使用安全传输,如果为true,则必须使用https的请求协议,如果是false,那么https和http请求协议的请求都可以;
7.size:Cookie的大小,不能超过4KB
二、Cookie的储存
语法:document.cookie = name=value;expire=date;path=储存路径;domain=域名;size=cookie大小
; // 只有name和value是必须要写的。
1.从上面的语法可以看出来,整个cookie都是被包在一个引号中的,以字符串的形式储存在本地,一次只能设置一个键值对。
2.我们可以自定义cookie的name和value值,当我们重复设置相同name的cookie时,那么旧的cookie会被新的cookie覆盖。
3.实例:
document.cookie = ‘username=zhangsan’
4.带有过期时间(expires)的cookie,配合日期对象实现
let d = new Date();
d.setDate(d.getDate() + 31); // 设置当前日期后31天过期
document.cookie = ‘username=zhangsan;expires=’ + d; // 这里也可以用反引号,将变量也包进引号中,看起来逻辑更加清晰
5.封装函数实现cookie的设置
function setCookie(name, value, day) {
let d = new Date();
d.setDate(getDate() + day);
document.cookie = ${name}=${value};exprise=${d}
}
6.如果储存的是对象格式的数据需要注意,因为对象的值为[Object Object],如果我们获取到的是这个值,那就没有什么意义了,所以我们要通过JSON的方法将它转换成字符串格式在储存进Cookie。
let obj = {
name:’’zhangsan,
age:18
};
let str = JSON.stringify(obj);
document.cookie = obj=${str}
; // 这样储存的就是字符串类型的数据,我们也可以很容易的用JSON方法再转换为对象