gpt4 book ai didi

javascript - 哪一个更好,为什么? JavaScript for 循环

转载 作者:行者123 更新时间:2023-12-02 16:27:23 26 4
gpt4 key购买 nike

A.

    var a = array();
for(var i = 0; i< 100;i++) {
var obj = new Obj(parameters);
a.push(obj);
}

B.

    var a = array();
var obj;
for(var i = 0; i< 100;i++) {
obj = new Obj(parameters);
a.push(obj);
}

哪一个在处理和内存方面更快,有什么区别吗?

最佳答案

执行方面没有区别。在两种情况下,在解析代码时,var obj 都会被提升到函数作用域的顶部,因此当解释器运行它时,它会产生相同的实际代码。有关吊装的更多信息,请参阅this article .

执行速度(一旦解析)应该没有差异,因为两者都编译为相同的实际代码。如果您想查看解析速度是否存在有意义的差异(这似乎不太可能),您必须构建一个测试用例,然后在几种不同的浏览器中测试性能。

如果您想优化性能,那么您可以在您向我们展示的代码中完全消除中间变量:

 var a = [];
for (var i = 0; i< 100;i++) {
a.push(new Obj(parameters));
}
<小时/>

从可读性的 Angular 来看,哪种编写代码更好的方法存在不同的观点。许多人建议所有变量都应该在定义它们的范围的顶部声明。其他人喜欢在最接近第一次使用时定义它们。由于两者都会导致相同的实际执行,因此这更多的是首选风格的问题。

<小时/>

随着 ES6 中引入 let 关键字,Javascript 中将出现 block 作用域,因此将有第三个选项使用 let obj = new Obj(...) 可能会导致与 var 定义不同的执行。

关于javascript - 哪一个更好,为什么? JavaScript for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28574834/

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