location.href 和 window.location 是 JavaScript 中用于获取当前页面 URL 信息的两种常见方式,它们之间有一些区别:
location.href
:
location.href 是 window.location 对象的一个属性,用于获取当前页面的完整 URL 地址字符串。
通过设置 location.href 的值,可以实现页面的跳转,类似于用户在浏览器地址栏中输入 URL 或者点击链接跳转页面的效果。例如,location.href = 'https://www.example.com' 将会跳转到指定的 URL。
由于 location.href 是字符串类型,因此可以直接修改它的值来实现页面的跳转,但是修改后会立即跳转到新的页面,不会保留当前页面的状态。
window.location
:
window.location 是一个包含有关当前页面 URL 的信息的对象,它包括了许多属性和方法,如 href, protocol, hostname, pathname, search 等。
与 location.href 不同,window.location 不仅提供了获取页面 URL 的功能,还可以对 URL 的各个部分进行单独的
设置和修改。例如,window.location.href 用于获取或设置页面的完整 URL;window.location.protocol 用于获取或设置页面的协议部分(如 http: 或 https:);window.location.pathname 用于获取或设置页面的路径部分等。
除了可以获取和设置页面 URL 之外,window.location 还提供了一些其他功能,如 reload() 方法用于重新加载页面、replace() 方法用于替换当前页面等。
location.href 主要用于页面跳转,而 window.location 则提供了更丰富的 URL 相关功能,包括获取、设置和操作页面 URL 的各个部分。