URLSearchParams
API 提供对 URL
查询部分的读写权限。
URLSearchParams
类也能够与以下四个构造函数中的任意一个单独使用。
URLSearchParams
类也可在全局对象上使用。
WHATWG URLSearchParams
接口和 [querystring
] 模块有相似的目的,但是 [querystring
] 模块的目的更加通用,因为它可以定制分隔符(&
和 =
)。
但另一方面,这个 API 是专门为 URL 查询字符串而设计的。
const myURL = new URL('https://example.org/?abc=123');
console.log(myURL.searchParams.get('abc'));
// 打印 123
myURL.searchParams.append('abc', 'xyz');
console.log(myURL.href);
// 打印 https://example.org/?abc=123&abc=xyz
myURL.searchParams.delete('abc');
myURL.searchParams.set('a', 'b');
console.log(myURL.href);
// 打印 https://example.org/?a=b
const newSearchParams = new URLSearchParams(myURL.searchParams);
// 上面的代码等同于:
// const newSearchParams = new URLSearchParams(myURL.search);
newSearchParams.append('a', 'c');
console.log(myURL.href);
// 打印 https://example.org/?a=b
console.log(newSearchParams.toString());
// 打印 a=b&a=c
// newSearchParams.toString() 会被隐式调用。
myURL.search = newSearchParams;
console.log(myURL.href);
// 打印 https://example.org/?a=b&a=c
newSearchParams.delete('a');
console.log(myURL.href);
// 打印 https://example.org/?a=b&a=c