Javascript window.location和location.href之间的差异

Javascript window.location和location.href之间的差异,javascript,Javascript,我对window.location和location.href之间的区别感到困惑。两人的行为方式似乎相同 区别是什么?检查: Location对象具有返回当前URL的toString方法。还可以将字符串指定给window.location。这意味着在大多数情况下,您可以像处理字符串一样处理window.location。有时,例如,当需要对其调用String方法时,必须显式调用toString: window只是包含多个属性的全局对象,其中一个属性是location位置也有属性,其中一个是hre

我对
window.location
location.href
之间的区别感到困惑。两人的行为方式似乎相同

区别是什么?

检查:

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


window
只是包含多个属性的全局对象,其中一个属性是
location
<代码>位置也有属性,其中一个是
href
location.href
只是
window.location.href
window。location
除了
href
之外还有其他属性,但如果您分配
window.location
一个URL,它将重定向


您可以在(如
search
protocol
hash
,…)

窗口中看到它的所有属性。location
是一个包含当前文档位置(主机、href、端口、协议等)所有信息的对象

location.href
是window.location.href(您从全局对象-window调用location,因此这是window.location.href)的简写,并且这只是一个包含当前网站完整URL的字符串


当您为它们分配URL时,它们的行为相同-它们将重定向到您分配的页面,但当您打开浏览器控制台(firebug或开发人员工具)时,您可以看到它们之间的差异并编写
window.location
location.href

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

何处为
窗口。location
属性表示窗口对象的当前位置,如果更改此属性,您将被重定向。

您正在访问同一对象。这是某种快捷方式。如果您使用firebug(或类似工具)更改其“hash”属性,您将看到它在两个地方都发生了更改


从技术上讲,您的默认范围是窗口对象,因此当您访问“location.href”时,您访问的是window.location.href.

它们是不同的<代码>窗口。位置是一个对象,包含属性
href
,该属性是一个字符串

设置
window.location
window.location.href
的行为方式与您注意到的相同,因为它很久以前就内置在JavaScript语言中。阅读更多这篇文章

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