Explain the handwritten encapsulation cookie in detail!

<script>
    // 添加cookie
    function setCookie(key, value, maxAge) {
        // 在设置cookie前进行编码操作。
        value = encodeURIComponent(value);
        if (maxAge) {
            document.cookie = `${key}=${value};max-age=${maxAge};`;
        } else {
            document.cookie = `${key}=${value};`;
        }
    }

    // 获取cookie。    取的所有cookie的值,格式:name=董书华;age=20;sex=男;height=170
    function getCookie(key) {
        var arr = document.cookie.split(';'); // ['name=董书华','age=20',...]
        if (arr.length > 0) {
            for (let i = 0; i < arr.length; i++) {
                const a = arr[i].split('=');
                var index = a.findIndex(function (v) {
                    return v.trim() == key;
                });
                if (index != -1) {
                    // return a[1];
                    return decodeURIComponent(a[1]);
                }
            }
        }
        return undefined;
    }

    // 删除cookie
    function removeCookie(key) {
        var value = getCookie(key);
        setCookie(key, value, -60000);
    }

    // 清空cookie
    function clearCookie() {
        // 找出来所有的key组成的数组  ['name','age']
        var arr = document.cookie.split(';');
        for (let i = 0; i < arr.length; i++) {
            const a = arr[i];
            removeCookie(a.split('=')[0]);
        }
    }

    // 测试添加cookie
    setCookie('name', '张三');
    setCookie('age', '20', 8 * 60 * 60);

    // 测试获取cookie
    var name = getCookie('name');
    var age = getCookie('age');
    console.log(name);
    console.log(age);

    // 删除删除和清空cookie
    // removeCookie('name');
    clearCookie();

    // 删除或清除后,如下返回undefined。
    var name = getCookie('name');
    var age = getCookie('age');
    console.log(name);
    console.log(age);

    // jquery.cookie.js插件。

</script>

Guess you like

Origin blog.csdn.net/weixin_55973231/article/details/114988250