我已经读过location.href比window.location.href快.但是内部的location.href被读作window.location.href对吗?那么它将如何提高显着性能呢?
我已经读过location.href比window.location.href快.
它可能无限快,但在现实生活中你没有注意到.原因如下:
这是发动机在(理论上)看到的情况location.href:
location当前范围; 如果没有找到,则转到包含范围等,最终达到全局范围.location被发现是全局对象的属性.href在location对象上查找属性.这是发动机在(理论上)看到的情况window.location.href:
window当前范围; 如果没有找到,则转到包含范围等,最终达到全局范围.window被发现是全局对象的属性; 它是全局对象用来引用自身的属性.location在该对象上查找属性.href在location对象上查找属性.因此window.location.href需要多一次属性查找location.href- 除非JavaScript引擎可以应用任何优化.但是从引擎到引擎的JavaScript性能差异很大; 你的旅费可能会改变.这是FB55汇总的一个基准,表明上述理论得到了实验结果的证实; location.href确实更快.在那个特定的测试中.

(蓝色= location.href,红色= window.location.href;更长的线=更快的性能.)
更重要的是:它真的重要吗?不是在现实世界中,不是.你必须要做数百万次这样才能产生任何人类可感知的差异.但这就解释了为什么你会看到人们这样说全局数据location(或任何其他全局,内置或由你自己的代码添加).