特点
① 永久存储、除非手动删除
② 最大可存储5M
③ 不参与服务器通信
④ 只能存储字符串
存
localStorage.setItem(key, value);
取
localStorage.getItem(key);
删
localStorage.removeItem(key);
清空所有
localStorage.clear();
特点
① 只有关闭整个浏览器,数据才会清除
② 可设置过期时间
③ 最大可存储4KB,最多可存储50条数据
④ 只能存储字符串
存
防止中文乱码问题,可以利用encodeURIComponent、decodeURIComponent进行编码和解码操作
document.cookie = `username=${encodeURIComponent('五五')};`;
取
// 取出所有
console.log(document.cookie);
// 函数封装:通过key取出指定的cookie
function getCookieByKey(searchKey) {
const allCookie = document.cookie.split('; ');
for(let i = 0; i < allCookie.length; i++) {
const item = allCookie[i].split('=');
if (item[0] === searchKey) {
return decodeURIComponent(item[1]);
}
}
}
改
利用存的方式直接将该条语句覆盖即可
设置过期时间
expires必须传入日期格式
// 在n天后过期
function expiresAfterDay(n) {
const d = new Date();
d.setDate(d.getDate() + n);
return d;
}
document.cookie = `username=${encodeURIComponent('五五')};expires=${expiresAfterDay(2)}`; // 2天后过期
删
设置过去的时间即可
document.cookie = `username=;expires=${new Date(0)}`;
限制访问路径
① 不设置的话,默认为当前页面加载的路径
② path必须与当前页面加载的路径一致,如果不一致,则访问不到
document.cookie = `username=${encodeURIComponent('五五')};path=/otherPath`; // 模拟路径不同的情况,这时获取该条cookie为空,因为路径不一致
限制访问域名
① 不设置的话,默认为当前页面加载的域名
② domain必须与当前页面加载的域名一致,如果不一致,则cookie设置失败
document.cookie = `username=${encodeURIComponent('五五')};domain=abc`;
secure
① 不设置secure,http/https协议加载的页面都可以设置cookie
② 设置secure,只有https协议加载的页面才可以设置cookie
document.cookie = `username=${encodeURIComponent};secure`;
sessionStorage.setItem(key, value);
sessionStorage.getItem(key);
sessionStorage.removeItem(key);
sessionStorage.clear();