当我在浏览器中测试这些代码时,它们似乎是相同的。有什么区别吗?
1
window.location = "http://stackoverflow.com";
2
window.location.href = "http://stackoverflow.com";
当我在浏览器中测试这些代码时,它们似乎是相同的。有什么区别吗?
window.location = "http://stackoverflow.com";
window.location.href = "http://stackoverflow.com";
是的,有所不同。 window.location
是一个 Location
对象。 window.location.href
是位置的字符串表示形式。 location
对象的 toString()
值与 href
属性相同,因此,如果作为字符串使用,它们是相同的。设置 window.location
与设置 window.location.href
相同。
然而,window.location
还有其他几个可以使用的属性,例如 location.hostname
、location.pathname
和 location.hash
。因此,您可以单独设置 location.hash
来更改哈希值。
window.location 是一个对象,它可以将当前页面添加到历史记录中,使您可以(或应该能够)单击“返回”并返回到当前页面。
另一方面,window.location.href
是 window.location
的字符串表示形式。
window.location是一个具有一些属性的对象,但window.location.href只是一个字符串。在window.location中,例如你有reload方法。