在JavaScript中,`history.go()` 和 `history.back()` 都是用于操作浏览器会话历史(session history)的方法,但它们之间存在一些关键的区别。
### history.go()
`history.go(n)` 方法会根据传入的参数 `n` 来在浏览历史中前进或后退多个页面。这里的 `n` 可以是正数、负数或零。
- 如果 `n` 是正数,浏览器会向前(即历史记录的新方向)跳转 `n` 个页面。
- 如果 `n` 是负数,浏览器会向后(即历史记录的旧方向)跳转 `n` 个页面。
- 如果 `n` 是 0,或者没有提供参数,则浏览器不会跳转,但会重新加载当前页面。
### history.back()
`history.back()` 方法是 `history.go(-1)` 的简写形式,它仅用于在浏览历史中后退一个页面。它不接受任何参数。
### 应用场景
- **history.go()** 的应用场景包括但不限于:
- 根据用户的选择或操作,动态地前进或后退多个页面。
- 实现自定义的“前进”和“后退”按钮,允许用户根据自己的需求导航浏览历史。
- **history.back()** 的应用场景则更加直接和常见:
- 当你需要提供一个简单的“返回”或“上一页”功能时,使用 `history.back()` 是最直接和简洁的方法。
### 示例代码
// 使用 history.go() 前进两个页面
history.go(2);
// 使用 history.go() 后退一个页面,等同于 history.back()
history.go(-1);
// 直接使用 history.back() 后退一个页面
history.back();
这些代码可以直接在浏览器的控制台中执行,或者在JavaScript文件中被调用,以实现相应的页面跳转功能。