location 是 bom 中 window 的核心属性,提供 url 信息与操作能力,支持跳转(href/assign/replace)、刷新(reload)、参数解析(search/urlsearchparams)及无刷新修改(pushstate/replacestate)。

location 是 BOM(Browser Object Model)中 window 对象的核心属性之一,它提供了当前页面 URL 的信息和操作能力。通过它不仅能获取地址栏内容,还能主动跳转、刷新、修改 URL 参数,是前端路由控制和页面导航的基础工具。
用 location.href 实现页面跳转
最常用也最直接的方式是给 location.href 赋新值:
- 跳转到绝对 URL:
location.href = "https://example.com" - 跳转到相对路径:
location.href = "/dashboard"(会拼接到当前域名下) - 跳转并保留历史记录(用户可点后退):
location.assign("about.html") - 替换当前历史记录(无法后退):
location.replace("login.html") - 强制刷新当前页:
location.reload(),加true表示从服务器重新加载
读取和解析 URL 中的参数(query string)
location.search 返回问号后的查询字符串,如 ?id=123&name=alice。手动解析可用 URLSearchParams(现代推荐)或正则/字符串分割:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 使用
URLSearchParams(兼容性好,Chrome 49+、Firefox 44+、Edge 17+、Safari 10.1+):const params = new URLSearchParams(location.search);<br> const id = params.get("id"); // "123"<br> const name = params.get("name"); // "alice"<br> const allNames = params.getAll("tag"); // 处理重复键 - 兼容老浏览器可封装简单解析函数:
function getQueryParams() {<br> const search = location.search.substring(1);<br> return search.split("&").reduce((acc, pair) => {<br> const [k, v] = pair.split("=");<br> if (k) acc[decodeURIComponent(k)] = decodeURIComponent(v || "");<br> return acc;<br> }, {});<br> }<br> const { id, name } = getQueryParams();
修改 URL 参数而不刷新页面(单页应用常用)
借助 history.pushState() 或 history.replaceState() 配合 location.origin + location.pathname 构造新 URL:
- 添加/更新参数后跳转(不刷新):
const url = new URL(location.href);<br> url.searchParams.set("tab", "settings");<br> history.pushState({}, "", url); - 仅更新参数,不改变页面状态:
url.searchParams.delete("temp");<br> history.replaceState({}, "", url); - 注意:pushState/replaceState 不触发页面加载,但需自行处理视图更新(如 React Router、Vue Router 底层就基于此)
location 其他实用属性一览
快速了解当前 URL 结构,便于条件判断或日志记录:
-
location.protocol→"https:" -
location.host→"example.com:8080" -
location.hostname→"example.com" -
location.port→"8080"(空字符串表示默认端口) -
location.pathname→"/user/profile" -
location.hash→"#section2"(可用于锚点或前端路由)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










