for in, for of의 차이

» JavaScript

for in, for of의 차이

for …in(객체 순환)

let obj = {
  a: 1,
  b: 2,
  c: 3,
};

for (let test in obj) {
  console.log(test); // a, b, c
}

객체에 for …in을 사용하면 프로퍼티가 정상적으로 출력되지만

let obj = {
  a: 1,
  b: 2,
  c: 3,
};

for (let test of obj) {
  console.log(test); // error
}

for …of를 사용하면 에러가 난다

for …of(배열 순환)

let arr = [1, 2, 3];

for (let test of arr) {
  console.log(test); // 1, 2, 3
}

배열에 for …of를 사용하면 프로퍼티가 출력된다

let arr = [1, 2, 3];

for (let test in arr) {
  console.log(test); // 0, 1, 2
}

배열에 for …in을 사용하면 배열도 객체이기에 출력은 되지만 key 값이 나오게된다