我正在阅读airbnb javascript 指南。有一个特别的声明,它说:
不要使用迭代器。更喜欢 JavaScript 的高阶函数,而不是像 for-in 或 for-of 这样的循环。
他们给出上述声明的原因是:
这强制执行我们的不可变规则。处理返回值的纯函数比副作用更容易推理。
我无法区分给出的两种编码实践:
const numbers = [1, 2, 3, 4, 5];
// bad
let sum = 0;
for (let num of numbers) {
sum += num;
}
sum === 15;
// good
let sum = 0;
numbers.forEach((num) => {
sum += num;
});
sum === 15;
谁能解释一下,为什么forEach比常规for循环更受欢迎?它如何真正产生影响?使用常规有任何副作用iterators吗?

