JavaScriptでは、for…inとfor…ofの違いがあります.
1336 ワード
起因
私はずっとそれらを見分けられませんでした.だから、専門的に比較を研究します.
違います
1.公式見解
2.分かりやすい言い方
例
以下の例は、
ループオブジェクト属性の場合は、
文章を調べたら:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...of https://segmentfault.com/q/1010000006658882
私はずっとそれらを見分けられませんでした.だから、専門的に比較を研究します.
違います
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