我在想:在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 循环时,我们无法在回调函数中使用 break 或 return 终止循环。
例如:你想要判断一个数字是否为质数。我认为使用 for 循环比使用 forEach 循环更容易实现。
- 可读性:使用 for 循环可以使代码更易读,而使用 forEach 可能会让代码更加混乱。
- 浏览器兼容性:forEach 不支持 IE < 9 ,因此在代码中需要引入一些 shim。
我的问题是:
- 使用 forEach 相对于 for 循环有哪些优势?
- 在什么情况下,使用 forEach 更为适合?
- 为什么 JavaScript 中需要引入 forEach?它有何用处?
[1,2,,3,4]
。你评论中的数组有五个成员,for 和 forEach 都会访问所有五个成员。但是,如果一个或多个成员不存在(所谓的“稀疏”数组),那么 forEach 将不会访问缺失的成员。 - RobG