gpt4 book ai didi

javascript - 全局变量 javascript, "varname"或 "window.varname"更快

转载 作者:行者123 更新时间:2023-11-30 13:18:00 26 4
gpt4 key购买 nike

var testvar = 'boat';

function testA() {

console.log(testvar);

}

function testB() {

console.log(window.testvar);

}

我知道如果我不放“窗口”。对于我的全局变量,然后 javascript 从方法 testA 开始搜索所有范围,直到它找到变量 testvar,所以如果我做 window.testvar 而不是它会使它更快,因为我直接告诉 javascript 在哪个范围中查找变量?或者更慢,因为我首先告诉 javascript 查找窗口对象,然后再查找变量?

最佳答案

分别尝试下面的两个代码并亲自查看结果。事实上,这可能不是最准确的测试用例,但是通过避免所有其他操作并在足够长的 for 循环内进行简单赋值,它应该足够准确。

我不得不说,我也很惊讶地看到,通过不指定 window Chrome 持续报告第二个代码的执行速度提高了大约 20%。

代码 1

// window.testvar testcase.
window.testvar = 'Hi there! I am a testvar!';
var tmp;
var start = new Date();
for(var i = 0; i < 1000000; i++){
tmp = window.testvar;
}
var stop = new Date();
console.log('This took exactlly ' + (stop.getTime() - start.getTime()) + ' milliseconds!');

结果:

  • 1695 毫秒
  • 1715 毫秒
  • 1737 毫秒
  • 1704 毫秒
  • 1695 毫秒

代码 2

// direct testvar testcase
testvar = 'Hi there! I am a testvar!';
var tmp;
var start = new Date();
for(var i = 0; i < 1000000; i++){
tmp = testvar;
}
var stop = new Date();
console.log('This took exactlly ' + (stop.getTime() - start.getTime()) + ' milliseconds!');

结果:

  • 1415 毫秒
  • 1450毫秒
  • 1422毫秒
  • 1428毫秒
  • 1450毫秒

在 Chrome 20.0.1132.47 中测试。

关于javascript - 全局变量 javascript, "varname"或 "window.varname"更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11283463/

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