Skip to main content

for loop과 forEach 중에 어떤 것이 더 퍼포먼스가 좋을까?

결론: 자바스크립트 엔진의 최적화로 인해, 퍼포먼스의 차이는 거의 없고, 가독성과 유지관리의 용이성을 중심으로 코드작성해야합니다.

그래도 굳이 고르자면?

=> for loop이 퍼포먼스가 더 좋습니다.

왜냐하면 forEach의 경우, 고차함수라는 함수이다보니, 함수호출 및 콜백함수 실행과 관련된 추가작업이 필요합니다.

const array = [1, 2, 3, 4, 5];

// 함수실행: forEach라는 함수를 콜스택에 넣는다. 그리고 실행한다.
// 콜백함수 호출: forEach안의 콜백함수 (item) => {...}을 실행한다.
array.forEach((item) => {
console.log(item);
});

반면에 for loop의 경우, i++, i--에 대한 연산만 하면 됩니다.

for (let i = 0; i < nums.length; i++) {}

그러면 가독성과 유지관리 용이성을 중심으로 생각했을 때

어떤 것이... 굳이 따지자면 더 좋을까요?

=> 직관성 및 가독성: forEach

=> 세밀한 작업(if문으로 조작, 중첩함수 등): for loop (하지만 제 생각에는 forEach에서도 이 부분이 가능하다고 보입니다.)