我很困惑,之间的差异window.location
和location.href
。两者似乎都以同样的方式行事。
有什么区别?
我很困惑,之间的差异window.location
和location.href
。两者似乎都以同样的方式行事。
有什么区别?
window.location
是一个对象,它包含有关当前文档位置的所有信息(主机、href、端口、协议等)。
location.href
是 window.location.href 的简写(你从全局对象 - 窗口调用位置,所以这是 window.location.href),这只是一个包含当前网站完整 URL 的字符串。
他们的行为一样,当你指定一个URL给他们-他们会重定向到您指定的页面,但你可以看到它们之间的差异,当你打开浏览器控制台(萤火虫或开发者工具)和写入window.location
和location.href
。
他们是不同的。window.location
是一个对象包含属性href
这是一个字符串。
正如您所注意到的,设置window.location
和window.location.href
行为方式相同,因为它很久以前就内置于 JavaScript 语言中。在此问题中阅读有关设置 window.location 的更多信息。
获取 window.location
和window.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
也有属性,其中之一是href
。location.href
只是window.location.href
location.href
属性返回当前页面的整个 URL。
window.location
属性表示 window 对象的当前位置,如果您更改它,您将被重定向。