【发布时间】:2018-08-31 10:22:32
【问题描述】:
我正在阅读airbnb javascript guide。有一个特别的说法,说:
不要使用迭代器。更喜欢 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 有什么副作用吗?
【问题讨论】:
-
更具可读性?更容易组合?
-
你会感到惊讶。 For 循环并不容易学习。 Foreach 是。
标签: javascript for-loop ecmascript-6