JavaScriptでは、for…inとfor…ofの違いがあります.

1336 ワード

起因
私はずっとそれらを見分けられませんでした.だから、専門的に比較を研究します.
違います
1.公式見解for...inであろうと、for...ofであろうと、いくつかのものが反復されている.それらの間の主な違いは、それらの反復方式にある.for...in:ステートメントは、元の挿入順序で反復オブジェクトのエニュメレート・属性を表します.for...of:ステートメントは、反復対象によって定義されるデータを巡回します.
2.分かりやすい言い方for...in:サイクルはkeyです.for...of:サイクルはvalueです.for...ofは、ES6によって新たに導入された特性であることに留意されたい.ES5によって導入されたfor...inの不足を修復した.

以下の例は、Arrayと一緒に使用する場合のfor...ofサイクルとfor...inサイクルとの違いを示している.
Object.prototype.objCustom = function() {}; 
Array.prototype.arrCustom = function() {};

let iterable = [3, 5, 7];
iterable.foo = 'hello';

for (let i in iterable) {
    console.log(i); // logs 0, 1, 2, "foo", "arrCustom", "objCustom"
}

for (let i in iterable) {
    if (iterable.hasOwnProperty(i)) {
        console.log(i); // logs 0, 1, 2, "foo"
    }
}

for (let i of iterable) {
    console.log(i); // logs 3, 5, 7
}
締め括りをつける
ループオブジェクト属性の場合は、for...inを使用する.配列を巡回するときはfor...ofを使用する.
文章を調べたら:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...of https://segmentfault.com/q/1010000006658882