forEach, for in, for...of의 차이

thgus·2024년 8월 7일
0

javascript

목록 보기
6/6

forEach

forEach는 Array의 prototype을 상속받은 객체가 사용할 수 있는 함수이다. 반복문이 아니라 '함수'이다. 인자로 함수를 받아 각 배열의 요소에 해당 함수를 적용한다.

※break 구문을 이용해서 루프를 중단하거나 return 구문을 이용해서 함수를 벗어날 수 없다!

for in

for in은 Object에 있는 key에 차례로 접근하는 데 사용되는 반복문이다. Array에도 사용할 수도 있지만 일반적으로 Object를 제외한 객체에는 사용하지 않는 것이 좋다.
왜냐하면 for in으로 순회를 하게 되면 해당 요소뿐 아니라 prototype chain을 따라 확장 속성들도 함께 순회하기 때문이다.
간단히 말해, for–in 구문은 일반 Object의 문자열 키(key)를 순회하기 위해 만들어진 문법입니다. Array를 다루는데는 그다지 유용하지 않습니다.

for of

for of는 이터러블한 객체의 순회를 도와주는 반복문이다. 때문에 Array만 반복할 수 있는 forEach와 다르게, 내부에 [Symbol.iterator]를 가진 객체라면 어떤 객체든 순회할 수 있다. 하지만 iterable하지 않은 일반 Object에는 사용할 수 없다.

※forEach() 구문과 달리, break, continue, 그리고 return 구문과 함께 사용할 수 있습니다.

이터러블 : 객체는 값이 for..of 구조 내에서 반복되는 것 같은 그 반복 동작을 정의하는 경우 반복이 가능(iterable)합니다. 이터레이터를 반환하는 Symbol.iterator을 가진 값. Array 또는 Map과 같은 일부 내장 형은 기본 반복 동작이 있지만 다른 형(가령 Object)은 없습니다. String, Array, TypedArray, Map 및 Set은 모두 내장 반복가능 객체입니다, 그들의 프로토타입 객체가 모두 Symbol.iterator 메서드가 있기 때문
이터레이터(반복자,Iterator) : 시퀀스를 정의하고 종료시의 반환값을 잠재적으로 정의하는 객체. {value, done} 객체를 리턴하는 next()를 가진 값.

요약

  1. forEach는 Array를 순회하는 데 사용되는 Array의 메소드.
  2. for in은 Object의 key를 순회하기 위해 사용되는 반복문. 단, 확장 속성까지 함께 순회한다는 점 고려.
  3. for of는 이터러블한 객체를 모두 순회할 수 있는 강력한 반복문!
profile
어쩌다보니IT

0개의 댓글