虽然的缺点!未定义的数组循环
Disadvantages of While ! Undefined array loop
根据这个JSPerf the While !未定义的样式数组循环在所有浏览器中都快 ~10 倍。这种循环方式的缺点是什么?
它实际上是测试用例中的一个错误,迭代器不会在每次测试运行时重置为零(即,只有第一次测试运行滚动整个循环,下一次运行迭代器已经超过数组的末尾,因此滚动零次)。有关真正的基准测试,请参阅更正的测试套件。
(注意:我没有检查所有测试用例,其他测试用例也可能有缺陷)
如您所见,我们谈论的是每秒数百万次操作的规模上快/慢 10 倍,这还不足以担心。
这种风格的一个可能的缺点是其他开发人员的可读性,这比"性能提升"更重要。
判断自己,什么更具可读性?
// Chrome 21: 5M operations per second
var a;
while ((a = arr[i++]) !== undefined) {
someFn(a);
}
// Chrome 21: 324k operations per second
for (var i = 0; i < arr.length; i++) {
someFn(arr[i]);
}
我能看到的主要缺点是你不能突破循环!您将立即遇到无响应的 UI。
缺点
:1. 如果 a[i] 已被使用,则它不再是未定义的。因此,您可能会做比预期更多的事情。2.可读性,很难知道终点(除非你把一些评论;)没有别的。
新版本仍然没有太大区别,但如果它是您需要的速度,那么请好好评论并测试好。
如果你的函数"someFn(a);"的计时器比这些测试中的计时器多,那么如果它那么重要,我建议测试你自己的循环。
如果不是,请始终坚持整洁的编码。
相关文章:
- javascript:数组循环
- 如何将数组循环到JSON代码中
- 而与数组循环
- JavaScript 数组/循环不起作用
- AJAX在数组循环中调用,只在上一次完成后调用next
- 数组循环以获取单个值
- JavaScript数组循环
- Javascript 2D数组循环停止
- 通过Javascript中的JSON数组循环
- 为什么以下 forEach 数组循环未返回未定义
- 如何在数组循环中过滤数据
- 如何在数组循环 222 中过滤数据
- 数组循环以确定范围平均值
- 对象的数组循环
- 对象键及其值的数组循环
- 虽然的缺点!未定义的数组循环
- 数组循环导致无限循环
- 数组循环 - 处理下拉列表中的空值
- 在 Node 中连接数组循环.js glob 结果
- JavaScript 图像数组循环