*문법
arr.forEach(callback(currentvalue[, index [, array] ]) [, thisArg])
*대개 이렇게 쓴다
arr.forEach(function(변수){
계산식
})
*화살표함수식
arr.forEach((변수) => {
계산식
})
currentValue
처리할 현재 요소(value)
index
처리할 현재 요소의 index
array
forEach()를 호출한 배열
thisArg
callback을 실행할 때 this로 사용할 값.
let arr = [1, true, "JavaScript"];
function printArr(value, index, array) {
document.write("arr[" + index + "] = " + value + "<br>");
}
arr.forEach(printArr); // 배열 arr의 각 요소마다 printArr() 함수가 호출됨.
for문과 forEach문의 차이
for문은 동기 방식(sync)이기 때문에 오류가 나면 오류가 난 위치에서 실행을 멈춘다. 하지만 forEach문은 비동기 방식(async)이기 때문에 멈추지 않고 동작한다.
forEach문은 for문과 달리 가변적인 배열이나 리스트 크기를 구할 필요가 없어 복잡한 반복문에 적합하며, 인덱스를 생성하여 접근하는 for문보다 수행 속도가 빠르다.
forEach 안에 오류가 있더라도 끝까지 실행하지만 그때문에 개발자가 의도한 순서와 다르게 동작할 수 있다.
forEach문은 읽기전용으로 데이터를 불러오기 때문에 값을 변경하거나 추가하는 것이 불가능하다.
순서대로 정보를 가져오기 때문에 배열을 역순으로 탐색하는 것 또한 불가능하다.
배열 정복하셨나요!!