【简介】
JavaScript
中的另一个机制:
cookie
,则可以达到真正全局变量的要求。
cookie
是浏览器
提供的一种机制,它将
document
对象的
cookie
属性提供给
JavaScript
。浏览器只提供了
doucment.cookie
属性,如果需要操作,我们需要手动封装操作方法。
但是由于设置cookie的值时只能设置字符串,所以对取值和存值都不方便。下面封装一组cookie增,删,改,查的代码段
【设置
cookie
值】
添加cookie 值为中文需要转码,重复名称会覆盖
[JavaScript]
纯文本查看
复制代码
1 2 3 4 5 6 7 8 9 | function setCookie(name, val, day) { let expireDate = new Date(); expireDate.setDate(expireDate.getDate() + day); document.cookie = `${name}=${val};expires=${expireDate.toGMTString()}`;} |
使用:
setCookie(“name”,”哈哈”,1000)
通常我们只需要名称、值和生命期,更多的属性设置修改按照prop=val;的形式修改最后一条代码即可
【读取
cookie值】
读取cookie 返回一个包含cookie键值对的数组
[JavaScript]
纯文本查看
复制代码
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | function getCookies() { let cookies = []; if(document.cookie) { let cookieArr = document.cookie.split(';'); for (let i = 0;i<cookieArr.length;i++) { let keyArr = cookieArr[i].split("="); let name = keyArr[0]; let val = keyArr[1]; cookies.push({name: val}); } } else { return false; } return cookies;} |
使用:
因为前面进行了设置,所以:
console.log(getCookies()[0].name) //
哈哈
【删除
cookie】
删除cookie 把失效日期设置为过期
[JavaScript]
纯文本查看
复制代码
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | function removeCookie(name) { let cookies = getCookies(); if (cookies) { for(let cookie of cookies) { if(cookie.name === name) { setCookie(name, null, -99); break; } } } else { return false; }} |