gpt4 book ai didi

javascript - 仅使用位置与跨浏览器使用 window.location 有什么区别吗

转载 作者:数据小太阳 更新时间:2023-10-29 05:50:07 25 4
gpt4 key购买 nike

我发现自己总是在写:

console.log(window.location.href);

想都没想。 SO上的大部分答案也是这样写的。我有什么理由不能写:

location.href

因为 location 是窗口级别的对象?这是否存在任何跨浏览器兼容性问题?

澄清一下:我知道有 document.location - 这不是这个问题的内容。这是关于仅使用 location 与跨浏览器使用 window.location 是否有任何区别。

最佳答案

有一些不同。

在全局范围内,它们之间绝对没有区别,但在其他情况下你可能会遇到麻烦:

function () {
var location = { 'href' : '123' } ;
console.log(window.location.href) // actual url
console.log(location.href) // '123'
}

这是因为如果你写 location 而没有加上 window 前缀,它会遍历每个作用域以找到一个名为 location 的变量。最终它会在窗口中找到它,除非另一个范围也声明了一个。显然反之亦然:

function () {
var window = { 'location' : { 'href': '123' } };
console.log(window.location.href) // '123'
console.log(location.href) // actual url
}

我个人更喜欢在全局变量前加上 window,因为这样我可以立即知道它们是全局的,还因为当我找到一个没有以 window 为前缀的全局变量时,我知道这是一个缺少 var 的拼写错误,但是这纯粹是个人喜好。

关于javascript - 仅使用位置与跨浏览器使用 window.location 有什么区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19423513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com