違い 1:
in の は JavaScript 1.0 でリリースされました。
For each は、E4X 標準の一部として JavaScript 1.6 でリリースされましたが、ECMAScript 標準の一部ではありません。
これは、さまざまなブラウザとの互換性の問題があることを意味します。これは多くのブラウザではサポートされていません。たとえば、IE6、IE7、IE8 およびその他のブラウザはサポートされていません。
違い 2:
例: var Rectangle = { 高さ: "15"、幅: "25" };
for (var i in 长方形){ alert( i + "," + 长方形[i] ); }
結果は次のようになります: 高さ、15;
for each (var i in 长方形){ alert( i + "," + 长方形[i] ); }
結果は次のとおりです: 15、未定義;
2 つのトラバーサル メソッドの変数 i の値はそれぞれ異なります。オブジェクトの属性名は取得できませんが、属性値のみを取得できます。
最後に、使用上の提案をまとめます:
(1) 通常の配列を走査するには、for in と for each in の両方にブラウザの互換性の問題があり、順序を保証できないため、便宜上、ネイティブの走査メソッドを使用することをお勧めします。配列を走査します (シーケンスが要件がない場合は、for in を使用できますが、お勧めしません)。興味がある場合は、次の記事「欠陥の簡単な分析」を参照してください。 js の for in の。
(2) オブジェクトのトラバース。for では理想的なトラバースが提供できないため、他の方法を選択するしかありません。上で説明した違いから、for in はインデックスと属性値を取得できるのに対し、for each は属性値しか取得できないため、for in を使用することをお勧めします。多くの以前のバージョンのブラウザはサポートされていません。
上記がこの記事の全内容です。皆さんに気に入っていただければ幸いです