你还在用Split分割URL参数吗

时间:2022-12-01 18:16:33

背景

当前端技术获取URL参数的时候,一般都是先通过window.location.search获取当前的URL地址,然后后边的就是参数,通过&=分割参数和参数名值。

现在ES6出了一个方便的对象,不用我们再写繁杂的字符分割逻辑了。

实际运用

以前的方法

var search = window.location.search;
// 去掉开头的问号
search = search.slice(1);
// 获取所有参数
var params = search.split('&');
// 遍历参数
for(var param of params) {
// 分离键值
var kv = param.split('=');
console.log(`${kv[0]} => ${kv[1]}`);
}
ES6的方法

var search = window.location.search;
var searchParams = new URLSearchParams(search);
// 获取参数
console.log(searchParams.get("ie"));
// 添加参数
searchParams.append("id", "666");
// 删除参数
searchParams.delete("id")
// 打印所有参数
searchParams.toString();