for...in문은 열거 가능한 non-Symbol 속성에 대해서만 반복한다.
임의의 순서로 객체의 속성들에 대해 반복하므로, 인덱스의 순서가 중요한 Array에서는 사용 ❌.
for...in은 특정 순서에 따라 인덱스를 반환하는 것을 보장할 수 없다.
const object = { a: 1, b: 2, c: 3 };
for (const property in object) {
console.log(`${property}: ${object[property]}`);
}
for...of 명령문은 반복 가능한 객체에 대해서 반복한다. Array, Map, Set, String, TypedArray, arguments 객체 등이 해당된다.
for (variable of iterable) {
statement;
}
객체에서는 for...in을, 배열에서는 for...of를 사용할 것 🤗