forEach vs for in vs for of

4090 단어 TILTIL

헷갈리는 forEach, for in, for of를 정리해보고자 한다.

forEach

forEach는 모든 요소를 반복하며 콜백함수를 실행한다.
오직 Array객체에서만 사용가능한 메서드. 반복문이 아니라 함수이다.

const arr=['가','나','다','라'];
arr.forEach(item =>{
  console.log(item);
});
//가나다라

for...in

for...in은 객체에 사용할 수 있다. 객체의 key값과 value값을 뽑아내는데 유용한 반복문.
Array에서도 사용할 수 있지만 일반적으로 Object를 제외한 객체에는 사용하지 않는 것이 좋다.
why? for in으로 순회를 하게 되면 해당요소뿐 아니라 prototype chain을 따라 확장 속성들도 함께 순회하기 때문이다.

var obj={
  a:'가',
  b:'나',
  c:'다'
};
for(var key in obj){
  console.log(key,obj[key]);
  //a 가,b 나,c다

for..of

for of 반복문을 사용하기 위해서는 컬렉션 객체가 Symbol.iterator속성을 가지고 있어야만 한다. for of는 iterable한 객체의 순회를 도와주는 반복문이다. Array만 반복할 수 있는 forEach와 다르게, 내부에 Symbol.iterator를 가진 객체라면 어떤 객체든 순회할 수 있다.

var iterable=[10,20,30];
for(var value of iterable) {
  console.log(value);//10,20,30
}

참고 :https://dydals5678.tistory.com/66

좋은 웹페이지 즐겨찾기