我最近了解了一种在JavaScript中遍历数组的不同方法。
我过去常常这样编写循环:
for (var len = 0; len < testData.length; len++) {
total = total + testData[len];
}
我读到一些这样的代码:
for (var len = 0; testData[len]; len++) {
total = total + testData[len];
}
我想知道这些方法的性能如何,所以我使用了jsPerf进行测试。结果非常惊人。我原本以为第二种方法会比第一种稍微快一点,但实际上它要快得多。
我是否忽略了什么缺点?或者这是遍历列表项的最佳方法。
更新:
灰色状态正在到来,Diode指出了测试用例中的一个简单缺陷,使得它看起来比实际更快。
在修正错误后,这是最快的方法:
var datalen = testData.length;
for (var len = 0; len <datalen; len++) {
total = total + testData[len];
}
更新2:
在更多的浏览器中测试后,这个测试用例又有了不同的方向。只有在Chrome和Opera中,普通的for循环是最快的。在其他所有浏览器中,Shmiddty的方法稍微快一点。
var i = testData.length, sum=0;
while (i--){
sum += testData[i];
}
0
值。将初始化更改为从1
开始而不是0
,然后进行比较。for (var i = 1; i < 1000; i++) {
- gray state is coming