URLSearchParams API 提供对 URL 查询部分的读写权限。 URLSearchParams 类也能够与以下四个构造函数中的任意一个单独使用。 URLSearchParams 类也可在全局对象上使用。

    WHATWG URLSearchParams 接口和 [querystring] 模块有相似的目的,但是 [querystring] 模块的目的更加通用,因为它可以定制分隔符(=)。 但另一方面,这个 API 是专门为 URL 查询字符串而设计的。

    1. const myURL = new URL('https://example.org/?abc=123');
    2. console.log(myURL.searchParams.get('abc'));
    3. // 打印 123
    4. myURL.searchParams.append('abc', 'xyz');
    5. console.log(myURL.href);
    6. // 打印 https://example.org/?abc=123&abc=xyz
    7. myURL.searchParams.delete('abc');
    8. myURL.searchParams.set('a', 'b');
    9. console.log(myURL.href);
    10. // 打印 https://example.org/?a=b
    11. const newSearchParams = new URLSearchParams(myURL.searchParams);
    12. // 上面的代码等同于:
    13. // const newSearchParams = new URLSearchParams(myURL.search);
    14. newSearchParams.append('a', 'c');
    15. console.log(myURL.href);
    16. // 打印 https://example.org/?a=b
    17. console.log(newSearchParams.toString());
    18. // 打印 a=b&a=c
    19. // newSearchParams.toString() 会被隐式调用。
    20. myURL.search = newSearchParams;
    21. console.log(myURL.href);
    22. // 打印 https://example.org/?a=b&a=c
    23. newSearchParams.delete('a');
    24. console.log(myURL.href);
    25. // 打印 https://example.org/?a=b&a=c