# Cookie

  • getCookies
  • getCookie
  • setCookie
  • setCookies
  • delCookies
  • delCookie
// 获取全部 cookie,以对象形式返回。
function getCookies(){
    const entries = document.cookie.split(';')
        .map(item => item.trim().split('='))
    return Object.fromEntries(entries)
}
// 示例
getCookies() // { key: value}


// 通过键名获取cookie值
const getCookie = (key) => getCookies()[key]
// 示例
getCookie('对象键名') // value


//设置单个cookie,timestamp(cookie过期时间--毫秒) 可以不传,如果要传,必须为正确的时间戳
function setCookie (key, val, timestamp = 0) {
    let expires = ""; // 过期时间
    const isObject = Object.prototype.toString.call(val) === '[object Object]'
    if(isObject){
        timestamp = val.expires ? val.expires : timestamp
        val = val.value ?? ''
    }
    if (timestamp !== 0) {      
        const date = new Date()
        date.setTime(timestamp)
        expires = `; expires=${date.toGMTString()}`
    }
    document.cookie = `${key}=${encodeURIComponent(val)}${expires}`;
} 
// 示例1
setCookie('a', '66666')
// 示例2
setCookie('b', '66666', 5000)
    

// 设置多个cookie
const setCookies = (cookies) => Object.entries(cookies)
    .forEach(([key, value]) => setCookie(key, value))
// 示例
const cookies = {
    cookie1: {
        value: 123,
        // expires(cookie过期时间--毫秒) 可以不传,如果要传,必须为正确的时间戳
        expires: 1643344305000
    }, 
    cookie2: {
        value: 456
    }
}
setCookies(cookies) 



// 删除多个cookie
const delCookies = (keys) => setCookies(Object.fromEntries(keys
        .map(key => [key, { expires: new Date().getTime() - 1 }])))
// 示例
delCookies(['a','b','c'])



// 删除单个cookie
const delCookie = (key) => delCookies([key]);
// 示例
delCookie('a')
更新时间: 2022-01-28