ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript の「for...in」ループと「for...of」ループの主な違いは何ですか?

JavaScript の「for...in」ループと「for...of」ループの主な違いは何ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-14 09:53:11869ブラウズ

What's the Key Difference Between JavaScript's `for...in` and `for...of` Loops?

ステートメントの for...in と for...of の違いを理解する

JavaScript ループの領域では、for.. .in および for...of ステートメントは、多くの場合混乱を引き起こします。 for...in はプロパティを反復処理するための基礎でしたが、for...of は特に値をターゲットにするために ES6 で登場しました。この記事では、これら 2 つの構成体の主な違いについて詳しく説明します。

for...in: プロパティ名の走査

For...in ループは列挙可能なプロパティを反復処理します。オブジェクトの名前。この例で示されているように、配列のインデックス キーと配列オブジェクトの "foo" キーを表す "0"、"1"、"2"、および "foo" が正常に記録されます。

for...of: プロパティ値の抽出

対照的に、for...of はオブジェクト固有のiterator は、そのイテレータによって生成された値を走査します。この例では、配列反復子は配列内の値、つまり「3」、「5」、および「7」のみを生成します。この動作は、反復子が値のみに焦点を当てるように設計されているという事実に由来しています。

非インデックス プロパティの非反復

特に、for...of はインデックス以外のプロパティを反復処理しないでください。この例では、値「hello」を含む「foo」プロパティはログに記録されません。これは、配列反復子が配列のインデックスに関連付けられた値のみを生成するためです。

例: 値中心の反復

例として、次のループは配列の値をログに記録する必要があります。 「foo」プロパティ値と同様に、配列のみをログに記録します。値:

for (var i of arr) {
  console.log(i); // logs "3", "5", "7"
}

この動作は、for...of がインデックス以外のプロパティを除いて値を反復する目的で構築されているという理解を強化します。

以上がJavaScript の「for...in」ループと「for...of」ループの主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。