for循环从大往小循环真的更加好吗?

2014-01-30 15:33:36 +08:00
 jacob
我的sublime text3,安装了emmet。输入for时会有自动完成,一共2中

//这种他叫“改进型内置for循环”

for (var i = Things.length - 1; i >= 0; i--) {
Things[i]
};

for (var i = 0; i < Things.length; i++) {
Things[i]
};

第一种和第二种在我眼中无非是顺序的区别,请问第一种真的比第二种好吗?
9139 次点击
所在节点    JavaScript
25 条回复
cassyfar
2014-01-31 01:54:43 +08:00
@alexrezit
for (var i = Things.length - 1; i >= 0; i--) 这种写法也不能处理length在loop里被改变的情况吧
vellow
2014-02-01 21:40:18 +08:00
for(var i=Things.length;i;i--){
Things[i]
}
这种会快一点吗?
miniwade514
2014-02-07 02:09:43 +08:00
不考虑数组长度变化的情况,第一种肯定更快。不用每次都获取长度,和0比大小是最快的。但是对于js而言,不同的引擎或许有不同的解释方法。

如果只考虑纯粹的数组,可能感觉不到效率差异,但是如果循环内部有dom操作,效率差异会大很多。
miniwade514
2014-02-07 02:18:51 +08:00
@miniwade514 刚才我回复的第二段自己回头看都迷糊了。。当我没说。。晚睡伤脑。。
yyx990803
2014-02-19 00:16:25 +08:00
大部分情况下,你在每个循环内所做的具体事情(操作数组或是DOM)花费的时间远远大于执行循环本身花费的时间。这种优化在实际应用中是难以量化的,除非你写的是效率要求特别高的底层基础架构,否则不必太过纠结。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/98700

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX