coding/JS

for in / for of

JIN_Coder 2022. 7. 27. 00:08

반복문의 한 종류인 for in과 for of의 차이를 알아보겠다.

 

결론부터 말하면
for in은 객체의 반복에서 사용

for of는 배열의 반복에서 사용

 

 

for in

객체를 순환 할 때 사용 

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

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

객체 안에서 순환 할때 사용하지만

객체의 키 값을 순환

 

객체가 아닌 배열에서 사용한다면?

let arr = [1, 2, 3];

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

배열도 객체의 일부분이기 때문에 순환을 하지만, value 값을 나타내는게 아닌 index 값을 나타낸다.

 

 

for of

배열를 순환 할때 사용

let arr = [1, 2, 3];

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

for (let val of 'abc') { 
	console.log(val); // 'a','b','c' 
}

for in과 다르게 배열의 경우 index가 아닌 value 값을 순환

배열 뿐만 아니라 일반 문자열에서도 사용 가능하다.

 

배열이 아닌 객체에서 사용한다면?

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

for (let item of obj) {
    console.log(item);  // Uncaught TypeError: obj is not iterable
}

객체는 배열이 아니기 때문에 순환하지 못한다.

 

 

정리

for in

객체의 key값에 접근 가능, value값에는 직접 접근 불가
모든 객체에서 사용 가능(배열도 가능하나 index 접근)

객체의 열거 가능한 '속성들'을 순회할 수 있도록 해줌

 

for of

배열에서는 value, 문자열에서는 각 문자열을 순환

반복 가능한 객체(iterable)를 순회할 수 있도록 해줌

Array, Map, Set, arguments 등이 해당됨 (Object는 해당 X)

 

 

[JavaScript] for ...in, for ...of의 차이

결론부터 말하면 for...of 는 배열의 반복에서 사용되고, for...in 은 객체의 반복에서 사용된다. 💫 for...of var arr = [1, 2, 3]; for (var item of arr) { console.log(item); // 1, 2, 3 } for...of 는 배열..

doozi0316.tistory.com

 

 

 

'coding > JS' 카테고리의 다른 글

네이버 지도 API  (0) 2022.07.28
rest API PUT/PATCH/POST  (0) 2022.07.27
slice()와 splice() 차이  (0) 2022.07.19
slice, 정규식  (0) 2022.07.18
JWT, API  (0) 2022.07.17