for in / for of 반복문

support·2021년 9월 6일
1
post-thumbnail

1 for in (객체)

for...in문은 상속된 열거 가능한 속성들을 포함하여 객체에서 문자열로 키가 지정된 모든 열거 가능한 속성에 대해 반복한다

const object = { 
  a: 1, 
  b: 2, 
  c: 3 
};

for (const property in object) {
  console.log(`${property}: ${object[property]}`);
  console.log(typeof property);
}

// "a: 1"
// "b: 2"
// "c: 3"
// property 는 전부 String
// 숫자를 값으로 추가했어도 결과는 String으로 나온다

for in 문을 배열에 쓰면?

let arr = [1, 2, 3];
for (let num in arr){
  console.log(num);
  console.log(typeof num);
}

// 0
// 1
// 2

// String

arr의 index값이 출력되기 때문에 원하는 값을 가져오기 어렵다

2 for of (문자열 , 배열)

for...of : 반복가능한 객체 (Array, Map, Set, String, TypedArray, arguments 객체 등을 포함)에 대해서 반복하고 기능수행

const array1 = ['a', 'b', 'c'];

for (const element of array1) {
  console.log(element);
}

// expected output: "a"
// expected output: "b"
// expected output: "c"

for of를 객체에 사용하면?

const object = { 
  a: 1, 
  b: 2, 
  c: 3 
};
for (let property of object){
  console.log(property);
  console.log(typeof property);
} 
// Uncaught TypeError: object is not iterable

object is not iterable 오류를 보여주며 사용할 수 없다
object는 반복이 가능하지 않아서 사용 할 수 없다는 뜻인데
객체에는 순서가 없기 때문에 사용 할 수 없다

0개의 댓글