urlsearchparams 是 javascript 原生、简洁可靠的 url 查询参数处理接口,支持获取、设置、删除参数及自动编解码,现代浏览器广泛兼容,ie 需 polyfill 或降级方案。

JavaScript 提供了原生的 URLSearchParams 接口,是获取和设置 URL 查询参数最简洁、可靠的方式,无需正则或手动解析。
获取 URL 中的查询参数
从当前页面 URL 或任意字符串中提取参数,都可用 URLSearchParams 构造函数:
- 获取当前页参数:
const params = new URLSearchParams(window.location.search) - 获取指定字符串参数:
const params = new URLSearchParams("name=Tom&age=25") - 读取单个值(返回第一个匹配):
params.get("name")→"Tom" - 读取所有同名参数值(如
tags=a&tags=b):params.getAll("tags")→["a", "b"] - 检查是否存在某参数:
params.has("age")→true
设置或修改 URL 参数
通过 set()、append()、delete() 方法操作参数,再同步回 URL:
-
set(key, value):设置键值,已存在则覆盖(如params.set("page", "2")) -
append(key, value):追加键值,支持重复键(如分页筛选多个标签:params.append("tag", "js")) -
delete("key"):移除指定参数(如params.delete("temp_id")) - 更新地址栏:
window.history.replaceState(null, "", `?${params}`)(不刷新页面) - 跳转新 URL:
window.location.href = `?${params}`
安全处理中文与特殊字符
URLSearchParams 自动对参数进行 URL 编码/解码,无需手动调用 encodeURIComponent:
- 传入中文:
params.set("q", "前端教程")→ 实际生成q=%E5%89%8D%E7%AB%AF%E6%95%99%E7%A8%8B - 读取时自动解码:
params.get("q")返回原始字符串"前端教程" - 避免手动拼接或解码,否则易出错或引发 XSS 风险
兼容性与降级建议
URLSearchParams 在现代浏览器(Chrome 49+、Firefox 44+、Safari 10.1+、Edge 16+)中完全支持。如需支持 IE,可引入轻量 polyfill(如 web-stdlib/url-search-params),或封装简易 fallback 函数解析 location.search 字符串。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











