대표적인 반복문 for, while 외에도 추가된 반복문 문법들이 있다.
for of 반복문은 배열의 원소를 하나씩 꺼내온다. array만 반복이 가능한 forEach와 다르게 내부에 [Symbol.iterator]를 가진 객체라면 어떤 객체든 반복할 수 있는 강력한 반복문이다.
for in 반복문은 배열의 순서(index)를 가져온다. 일반적으로 Object에 있는 key에 차례로 접근할 때 사용하는데 그 외에는 사용하지 않는 것을 권장한다. 해당 요소뿐만 아니라 prototype chain을 따라 확장 속성들도 함께 접근되기 때문이다.
for(let 인덱스 in 배열){
}
fot(let 요소 of 배열){
}
-------------------------
let array = ["가", "나", "다"];
for (let i in array) {
console.log(`${i}번째 요소는 ${array[i]}`);
}
for (let item of array) {
console.log(item);
}
예시 코드의 array 배열의 인덱스는 0, 1, 2로 i가 0인 채로 한 번, 1인 채로 한 번, 2인 채로 한 번 반복문을 실행한다.
예시 코드의 array 배열의 요소는 "가", "나", "다"로 item이 "가"인 채로 한 번, "나"인 채로 한 번, "다"인 채로 한 번 실행된다.
정확히 말하자면 forEach는 반복문이 아니라 함수이다. Array의 Prototype을 상속받은 객체가 사용할 수 있는 함수로, 인자로 함수를 받아 각 배열의 요소에 해당 함수를 적용한다.