【发布时间】:2013-03-07 23:14:42
【问题描述】:
我一直想知道for 循环或for..in 循环在数组上的哪个位置更远。
我已经使用jsperf 对此进行了测试。
我的For 循环有16,676,377 op/s
而for..in 只有519,853 op/s
那为什么是:
var a = ["hi", "hi2", "bye", "bye2"];
for (var i in a) {
return a[i];
}
较慢:
var a = ["hi", "hi2", "bye", "bye2"];
for (var i = 0; i < a.length; i++) {
return a[i];
}
【问题讨论】:
-
他们做不同的事情(并且实现方式不同)。那么..有什么问题?
-
@pst,OP 不明白他们的不同之处。
-
实际上你的退货声明有点破坏了一切
-
增加一个计数器以获取下一个要解析的属性可能比搜索对象更有效,它是
[[Prototype]]链,用于随后必须解析的可枚举属性。 -
哈,我完全忘了回报要分手了。
标签: javascript arrays performance for-loop