我想知道:JavaScript 中的 forEach
和 for
循环之间是否有任何显着差异。
考虑这个例子:
var myArray = [1,2,3,4];
myArray.forEach(function(value) {
console.log(value);
});
for (var i = 0; i < myArray.length; i++) {
console.log(myArray[i]);
}
这是我研究的一部分:
- 性能:根据 JsPerf :forEach 比 for 循环慢一点。
- 可用性:在 forEach 循环的情况下,我们无法从回调中中断/返回。
例如:你想知道一个数是否是质数。我认为使用 for 循环比使用 forEach 循环更容易做到这一点。
- 可读性: 使用 for 循环使代码比在代码中使用 forEach 更具可读性。
- 浏览器兼容性:IE < 9 不支持 forEach 因此在我们的代码中引入了一些 shim。
我的问题是:
- forEach 比 for 循环有什么优势?
- 在什么场景下,forEach更可取。
- 为什么它甚至会出现在 JavaScript 中?为什么需要它?
原文由 Sachin Jain 发布,翻译遵循 CC BY-SA 4.0 许可协议
forEach
是Array
原型上的一个方法。它遍历数组的每个元素并将其传递给回调函数。所以基本上,
forEach
是用例 “将array
的每个元素传递给function
” 用例的简写方法。这是一个常见的例子,我认为Array.forEach
与for
循环相比非常有用:如您所见,与
for
循环相比,forEach 语句的可读性有所提高。另一方面,
for
语句更灵活:它不一定涉及数组。正常的for
循环的性能稍微好一些,因为没有对涉及的每个元素进行函数调用。尽管如此,建议避免for
循环,因为它可以写成forEach
语句。