cookie 前后端都可以设置的

了解cookie是一个浏览器的存储空间。它的存储格式是字符串的形式(string=" “),
cookie的每一条数据都是以key=value的形式设置的。
cookie值一次只能设置一个。即语法:document.cookie=” key=value"这个是不带过期时间的
多个cookie的设置就是key1=value1 ;key2=value2…

cookie 的特点

1 按域名存储:哪个域名存储的就只能在这个域名下边用,其他域名不可以。只要域名一样,就可以使用和资源路径没有关系。
2 存储大小受到限制:4kb 大概50条左右的信息量
3 时效性:默认是会话级别的,当关闭浏览器的时候就没有了,注意是浏览器而不是网页。可以手动设置,这就涉及到了一个过期时间,经常见的就是7天免登录的信息。
***eg:在某个网站登录了自己的账号,当你7天内再次打开的时候,***发现信息还在就是用了cookie设置了这个信息。下边会有一个详解。又因为涉及到安全的隐私问题,所以它的信息值是在变化的,保障你的安全性。
4 请求的时候会自动携带:也就是说只要cookie空间里有数据,那请求的时候,有多少带多少。
5 前后端都可以操作的(增 删 改 查)

解析

:也就是设置,因为cookie一次只能设置一次。
document.cookie=‘key=value’// 会话级别,关闭浏览器就会删除。
本质上cookie是不可以删除的,而我们要删除他,就要给cookie设置一个过期时间。
我们所在的地区为东八区。所以时间上,相对于世界时间的标准时向前推送了8个小时,所以就要是现在的时间回退到8小时以前。
加入现在是早上8点,那么你回退8小时,就是凌晨0点的时候
语法:
document.cookie=" key=value;expires="+时间对象
这里的key就是属性名
value就是属性值
expires就是时间期限,也就是过期时间
解析:
先得到现在的时间time:
let time=new Date()//当前时间对象
(getTime()时间对象的时间戳。setTime()根据时间戳设置时间)
time.setTime(time.getTime()-10006060*8-1000)
这个意思就是 当前时间 根据时间戳设置时间,里面的时间是一个时间对象得到现在时间的时间回退到8小时以前的前一秒,也就是在你设置的那一秒已经过期了。
以为cookie的值一次只能设置一个,也就是说,当你在设置相同的属性名的时候就应经给替换改变 了,即 document.cookie=‘a=100’;document.cookie=‘a=200’.此时打印的一下aj就是200, console.log(a)
获取cookie,直接打印cookie就可以了,有多少就会打印出来多少。
console.log(document.cookie).会拿到所有的cookie值。如果想要单独拿到某个cookie值就要进行转化了。因为cookie的存储格式是字符换,哪里就要转化成数组。
**

封装cookie的操作,可以用一下

setCookie方法是设置
getCookie方法是获取

先说设置cookie
这里他接受三个参数,应该可以看得懂的吧,key就是你将要设置的属性名,value就是属性值,expires就是过期时间,这个过期时间看你的需要,可以最后不传,但可以设置上,以防后期调用的时候忘记

function setCookie(key,value,expires){


这里的操作跟上边的设置过期时间一样,只不过是把它放到了if判断里面

if(expires){
 var time =new Date()
 time.setTime(time.getTome()-100060608+1000expires)
 document.cookie=key+“=”+value+“;expires=”+time


这里采用的是拼接字符串的方式。

}else{
 document.cookie=key+"="+value
 }
 }


自己传参验证
setcookie(“key”,“value”,expires)=>(a,100,10)就是当前时间的10秒以后过期,不设置expires就是默认8小时前的时间对象。

获取cookie
这里传一个参数key就可以了,上边已经设置过参数,我们获取cookie就是通过属性名来获取的

function getCookie(key){


因为cookie是字符串的形式存储的所以我们要

var str=’ ’


然后把它分割成数组的形式,在数组中用split方法分割

var tmp =document.cookie.split(";")


for循环后者foreach 的方法去遍历他

tmp.forEach(function(item){//这里的item就是每一条cookie


打印一下,看看结果console.log(item)

var t=item.split("=")


判断他的索引是不是等于key

if(t[0]===key){
 str=t[1]
 }
 })


返回这个 str

return str
 }
 var res=getCookie(key)//传递一个你要获取的key名。
 console.log(res)