一、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方法再转换为对象