URLSearchParams()
用来获取URL参数的方法, URLSearchParams() 构造器创建并返回一个新的URLSearchParams 对象。开头的'?' 字符会被忽略。
1.实例方法URLSearchParams.get()和URLSearchParams.getAll()的用法
let searchParam = new URLSearchParam(window.location.search)
//例如window.location.href = 'http://juejin.cn?foo=1&bar=2'
searchParam.get(foo) //1
searchParam.getAll('foo') //getAll会返回一个数组['1']
2.实例方法URLSearchParams.append()
let searchParam = new URLSearchParam(window.location.search)
//例如window.location.href = 'http://juejin.cn?foo=1&bar=2'
searchParam.append('id', 4);
//URL的参数 foo=1&bar=2&id=4
3.实例方法URLSearchParams.delete()
let params = new URLSearchParams(window.location.search); //删除第二个 foo 搜索参数。
params.delete('foo'); //查询字符串变成:'bar=2'
4.URLSearchParams.entries() 方法返回一个iterator,允许遍历该对象中包含的所有键/值对。
//例如window.location.href = 'http://juejin.cn?foo=1&bar=2'
for(var pair of searchParams.entries()) { console.log(pair[0]+ ', '+ pair[1]); }
foo,1
bar,2
5.URLSearchParams.forEach()
/** @params value // 当前遍历键值
@params key // 当前遍历键名
@params searchParams // urlSearchParams 对象 */ searchParams.forEach(callback(value,key,searchParams));
例如
var searchParams = new URLSearchParams("key1=value1&key2=value2");
let returnValue = searchParams.forEach(function(value, key,searchParams) {
// 打印值 console.log(value, key,searchParams);
});
6.URLSearchParams.has()
var hasName = URLSearchParams.has(name) // 返回一个 Boolean 表示一个指定的键名对应的值是否存在。
7.URLSearchParams.keys()
searchParams.keys(); // 返回一个iterator,遍历器允许遍历对象中包含的所有键。这些键都是USVString对象。
// 建立一个测试用 URLSearchParams 对象
var searchParams = new URLSearchParams("key1=value1&key2=value2"); // 输出键值对
for(var key of searchParams.keys()) { console.log(key); // key1 key2 }
8.URLSearchParams.set()
URLSearchParams.set(name, value) // 用于设置和搜索参数相关联的值。如果设置前已经存在匹配的值,该方法会删除多余的,如果将要设置的值不存在,则创建它
let url = new URL('https://example.com?foo=1&bar=2');
let params = new URLSearchParams(url.search.slice(1)); //设置一个查询参数,追忆要和append方法区别,如果键值相同,set会重置所有,而append会新增一个值 params.appen('foo', 3); // params.getAll('for')返回['1','3'] params.set('foo','3') // params.getAll('foo')返回['3']
- URLSearchParams.toString()
URLSearchParams.toString() // 返回适用在 URL 中的查询字符串
let url = new URL('https://example.com?foo=1&bar=2');
let params = new URLSearchParams(url.search.slice(1));
params.append('foo', 4);
console.log(params.toString()); //Prints 'foo=1&bar=2&foo=4'.