location.href、replace()和assign()均可跳转,href和assign()保留历史记录,replace()无痕替换;reload()仅刷新页面,不支持跳转。

在 JavaScript 中,window.location 是操作当前页面 URL 的核心对象,既能读取地址信息,也能触发跳转或重定向。关键在于区分几种常用属性和方法的用途与行为差异。
用 location.href 跳转到新页面(最常用)
直接给 window.location.href 赋值一个新 URL,浏览器会立即导航过去,相当于用户点击了一个链接。
- 支持相对路径(如
"./about.html")、绝对路径(如"/contact")和完整 URL(如"https://example.com") - 该操作会保留当前页面在浏览历史中,用户可点“后退”返回
- 示例:
window.location.href = "https://github.com";
用 location.replace() 实现无痕重定向
window.location.replace() 会用新页面替换当前页面在历史记录中的位置,不会留下跳转前的记录。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- 适合登录成功后跳首页、表单提交后跳结果页等场景,避免用户点“后退”回到已失效的页面
- 不会触发
beforeunload事件(因为不是“离开”,而是“替换”) - 示例:
window.location.replace("/dashboard");
用 location.assign() 显式触发跳转(语义更清晰)
window.location.assign() 和设置 href 效果完全相同,但语义上更明确表达“主动加载新资源”。
- 行为等同于
location.href = url,也会保留在历史栈中 - 部分开发者偏好它,因为意图更直观,且不涉及赋值操作的副作用联想
- 示例:
window.location.assign("login.html");
注意:不要用 location.reload() 做跳转
window.location.reload() 是刷新当前页面,不是跳转。传参 true 会强制从服务器重新加载,但地址不变。
- 误写成
location.reload("new.html")不会生效——它不接受 URL 参数 - 若想刷新后跳转,需分两步:先跳转,再在目标页内调用
reload()(极少需要)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










