cookie

176 阅读1分钟

一.cookie

let now = new Date()
    now.setMinutes(now.getMinutes() + 1)       // 按分钟计算,一分钟后
    document.cookie = "nickname=Simba;expires=" + now.toUTCString()

    console.log(document.cookie);

    setTimeout(() => {
        let now = new Date()
        now.setMinutes(now.getMinutes() - 1)   // -1分钟,相当于删除cookie
        document.cookie = "nickname=ace;expires=" + now.toUTCString()
    },4000)                                    // 4秒后删除cookie

二.cookie封装

 function setCookie(key, val, expires) {
        let now = new Date()
        now.setMinutes(now.getMinutes() + expires)
        document.cookie = `${key}=${val};expires=`+ now.toUTCString()
    }
    function removeCookie(key) {
        setCookie(key, null, -1)
    }
    setCookie('age', 120, 30)
    setCookie('nickname', 320, 30)
    setCookie('gender', 420, 30)
    setCookie('tel', 520, 30)

    function getCookie(key) {
        let obj = {}
        document.cookie.split('; ').forEach(r => {
            let kv = r.split('=')
            obj[kv[0]] = kv[1]
        })
        if (key) return obj[key]
        return obj
    }
    console.log(getCookie());
    console.log(getCookie('age'));
    console.log(getCookie('tel'));

三.cookie存在 库 里面

1.json代码

setCookie(key, val, expires) {
    if (typeof val === 'object')
        val = JSON.stringify(val)
    let now = new Date()
    now.setMinutes(now.getMinutes() + expires)
    document.cookie = `${key}=${val};expires=` + now.toUTCString()
},
removeCookie(key) {
    this.setCookie(key, null, -1)
},
getCookie(key) {
    let obj = {}
    document.cookie.split('; ').forEach(r => {
        let kv = r.split('=')
        let res = null
        let val = decodeURI(kv[1])
        try {
            res = JSON.parse(val)
        } catch (error) {
            res = val
        }
        obj[kv[0]] = res
    })
    if (key) return obj[key]
    return obj
}

2.script代码

    shen.setCookie('age', [20, '张三'], 30)
    shen.setCookie('nickname', { age: 220 }, 30)
    shen.setCookie('gender', '李四', 30)
    shen.setCookie('tel', 520, 30)
    shen.removeCookie('tel')
    console.log(shen.getCookie());
    console.log(shen.getCookie('age'));
    console.log(shen.getCookie('nickname'));