ループ反復変数var i=0; i<length; i++
を使用するときには、非常に冗長で絶対的なやり方であり、必要でなくても項目のインデックスを提供するので、私たちは常にループの絶対的な方法を避けたいという考えを理解しています。アレイ上の.forEach()
方法は、宣言的なアプローチでval
(および必要に応じてのみindex
)を露光することによりこれを解決しているようだ:ES2015で、forEachを既に使用している場合、なぜ新しいループ構成が必要になるのですか?
var arr = [1, 2, 3, 4];
arr.forEach(function (val) {
// Use val
});
私はES6構造物を通過して、新たなfor-of
ループ構造を見てきました。試してみると私の質問は次のようになります:
言語で定義されている2つの新しい構造体が必要なのはなぜですか?上記の2つのループ構成では実現できない機能は何ですか?
iterablesを一貫して繰り返します。 –
'for..of'は(潜在的に)無限のシーケンスジェネレータで動作します。 '.forEach()'でそれを行うことはできません。 – nnnnnn
'for'ループは冗長ではありません。私は 'forEach'のあなたのキャラクタライゼーションを「宣言的」として扱います。それは(適度に)「機能的」だが、依然として完全に手続き的/命令的である。副次的な点ですが、 'for ... of'の変数は分解できますので、' for([a、b]対の ')を書くことができます。 –