cookies操作的封装

cookie操作的封装

代码如下

    const Cookies = {
    // setCookie,第三参数是时间 第四参数是时间单位
    setItem(key, value, expires = null, expiresType = "day") {
        if (expires === null) {
            return document.cookie = `${key}=${value}`
        }
        let date = new Date();
        let Type = expiresType.toLowerCase()
        switch (Type) {
            case "year":
                date.setFullYear(date.getFullYear() + expires)
                break;
            case "month":
                date.setMonth(date.getMonth() + expires)
                break;
            case "day":
                date.setDate(date.getDate() + expires)
                break;
            case "hour":
                date.setHours(date.getHours() + expires)
                break;
            case "minute":
                date.setMinutes(date.getMinutes() + expires)
                break;
            case "second":
                date.setSeconds(date.getSeconds() + expires)
                break;

        }
        document.cookie = `${key}=${value};expires=${date}`

    },
    // 回去cooie
    getItem(key) {
        let val;
        let data = document.cookie.split("; ");
        for (let i = 0, len = data.length; i < len; i++) {
            let [name, value] = data[i].split("=");
            if (name == key) {
                val = value;
                break;
            }
        }
        return val;
    },
    // 清除某个cookie
    removeItem(key) {
        this.setItem(key, null, -1);
    },
    // 获取所有keys
    keys() {
        let keyArr = [];
        let data = document.cookie.split("; ");
        for (let i = 0, len = data.length; i < len; i++) {
            let [name] = data[i].split("=");
            keyArr.push(name)
        }
        return keyArr;
    },
    // 获取所有valuse
    values() {
        let valArr = [];
        let data = document.cookie.split("; ");
        for (let i = 0, len = data.length; i < len; i++) {
            let [name, val] = data[i].split("=");
            valArr.push(val)
        }
        return valArr;
    },
    // 清空所以
    clear() {
        let arr = this.keys();
        arr.forEach(ele => this.setItem(ele, null, -1));
    }

}

posted @ 2020-12-19 22:35  穹顶之下,云雾织彩霞  阅读(53)  评论(0)    收藏  举报