首页 > 哪位大侠可以帮我看一下,这两段代码我理解的对否?这两段代码是用在什么场景下?谢谢

哪位大侠可以帮我看一下,这两段代码我理解的对否?这两段代码是用在什么场景下?谢谢

//getQueryString 这个方法是获取参数的数组
function getQueryString() {
    //这句的作用是从当前页面的地址的参数中提取出指定的参数值
    //返回值是数组形式[?&][^?&]+=[^?&],该数组的内容依赖于RegExp是否具有全局标志  ‘g’
    var a = location.search.match(new RegExp("[?&][^?&]+=[^?&]+", "g"));
    //如果匹配a的值为null,则返回为空值
    //这里也可以写为: return(a?decodeURL(a[0]:null));
    if (a == null) {
        return ""
    }
    //循环取出a数组中的某个数据,并赋值给变量b,这个b同样是a数组中的一员
    for (var b = 0; b < a.length; b++) {
    //    从第一个位置开始搜索返回
        a[b] = a[b].substring(1)
    }
    return a
}

//getQueryStringByName  这个方法是从参数名称中获取值
function getQueryStringByName(b) {
    //从当前的页面地址参数中提出指定参数的值
    var a = location.search.match(new RegExp("[?&]" + b + "=([^&]+)", "i"));
    //如果提取出的值为空或不存在
    if (a == null || a.length < 1) {
    //那么返因为空
        return ""
    }
    //或者返回第一个数组
    return a[1]
}

//getQueryStringByIndex  这个方法是根据参数索引获取值
function getQueryStringByIndex(b) {
    if (b == null) {
        //如果提出到的值为null,则返回为空
        return ""
    }
    //获取QueryString的数组 并赋值给d
    var d = getQueryString();
    //如果第一次取到的b的数据大于等于第二次获取到的数据d
    if (b >= d.length) {
    //返回为空
        return ""
    }
    
    
    var a = d[b];
    //检索a中包含的字符串是否含有 = 
    var c = a.indexOf("=") + 1;
    //从c的位置返回a的字符串
    a = a.substring(c);
    return a
};

这是第二段:这段我觉得是storage方法,但有点看不懂哪

(function() {
    //定义储存的容器storage,并为它赋值
    var storage = {
        //存储
        localSetItem: function(key, val) {
            //定义值
            var value;
            //如果值类型为对象
            if (typeof val == "object") {
                //值的返回方式为  o_字符串
                value = "o_" + JSON.stringify(val);
                //重新储存数据 
                localStorage.setItem(key, value)
            } else {
                //否则,值拼写返回为 s_ + 字符串
                value = "s_" + val;
                //重新储存数据
                localStorage.setItem(key, value)
            }
        },
        //获取数据,参数为key
        localGetItem: function(key) {
            //定义值并赋值  值为从本地获取到的值
            var value = localStorage.getItem(key);
            if (value) {
                //如果检索到的值中包含字符串 “o”,且大于等于0
                if (value.indexOf("o") >= 0) {
                    //当前值为检索到的值中从第2个字符开始的位置返回
                    value = value.substring(2);
                    //将返回的值转换为字符串
                    value = JSON.parse(value)
                } else {
                    value = value.substring(2)
                }
            }
            //返回这个值
            return value
        },
        //逐个删除方法
        localRemoveItem: function(key) {
            //逐个删除本地储存数据,参数为key
            localStorage.removeItem(key)
        },
        //全部清除方法
        localRemoveAllItem: function() {
            //全闻清除保留在本地的缓存数据
            localStorage.clear()
        },
        //将val的值存储在key字段
        sessionSetItem: function(key, val) {
            //定义值
            var value;
            //如果值的类型的对象类型
            if (typeof val == "object") {
                //值的返回方式为  o_字符串
                value = "o_" + JSON.stringify(val);
                //获取这个o_字符串的值
                sessionStorage.setItem(key, value)
            } else {
                //否则,返回值的显示方式为  s_字符串
                value = "s_" + val;
                //获取这个 s_字符串的值
                sessionStorage.setItem(key, value)
            }
        },
        //获取这个key字段
        sessionGetItem: function(key) {
            //定义这个值并赋值
            var value = sessionStorage.getItem(key);
            if (value) {
                //如果检索到的值中包含字符串 “o”,且大于等于0
                if (value.indexOf("o") >= 0) {
                    //当前值为检索到的值中从第2个字符开始的位置返回
                    value = value.substring(2);
                    //把这个值转为字符串类型
                    value = JSON.parse(value)
                } else {
                    value = value.substring(2)
                }
            }
            return value
        },
        //删除指定key的本地数据
        sessionRemoveItem: function(key) {
            sessionStorage.removeItem(key)
        },
        //清除所有缓冲数据
        sessionRemoveAllItem: function() {
            sessionStorage.clear()
        }
    };
    //将窗口中的数据储存在本地
    window.Data = storage
})();

前一段是用来解析、获取 请求查询查询 的

后一段是用来操作 本地存储 的

这两段代码函数名都是表意的,一看就能明白用处

【热门文章】
【热门文章】