window.location 和 location.href 的区别

IT技术 javascript
2021-03-06 07:06:33

我很困惑,之间的差异window.locationlocation.href两者似乎都以同样的方式行事。

有什么区别?

6个回答

window.location 是一个对象,它包含有关当前文档位置的所有信息(主机、href、端口、协议等)。

location.href 是 window.location.href 的简写(你从全局对象 - 窗口调用位置,所以这是 window.location.href),这只是一个包含当前网站完整 URL 的字符串。

他们的行为一样,当你指定一个URL给他们-他们会重定向到您指定的页面,但你可以看到它们之间的差异,当你打开浏览器控制台(萤火虫或开发者工具)和写入window.locationlocation.href

他们是不同的。window.location是一个对象包含属性href这是一个字符串

正如您所注意到的,设置window.locationwindow.location.href行为方式相同,因为它很久以前就内置于 JavaScript 语言中。在此问题中阅读有关设置 window.location 的更多信息

获取 window.locationwindow.location.href行为不同,因为前者是一个对象,后者是一个字符串。如果您运行像indexOf()或 之类的字符串函数toLowerCase(),则必须使用window.location.href.

window.location除了具有其他属性,href但如果您分配window.location一个 URL,它将重定向。

你可以在MDN 中看到它的所有属性(比如search, protocol, hash, ...)

检查这个旧的 MDN 文章

Location 对象有一个返回当前 URL 的 toString 方法。您还可以为 window.location 分配一个字符串。这意味着在大多数情况下,您可以将 window.location 视为字符串。有时,例如当您需要对其调用 String 方法时,您必须显式调用 toString:

window只是包含多个属性的全局对象,其中之一是location. location也有属性,其中之一是hreflocation.href只是window.location.href

location.href 属性返回当前页面的整个 URL。

然而

window.location 属性表示 window 对象的当前位置,如果您更改它,您将被重定向。