개요
리액트로 개발하던 도중 for와 foreach가 왜 굳이 따로 존재할까 의문이 들었다.
뭔가 foreach가 간결하게 value를 탐색하는것 같아 더 간지가 나지만
for문에서도 of를 사용하면 value로 탐색이 가능하고
foreach문에서도 두번째 인자를 통해 idx를 가져올 수 있다.
이렇게 보면 둘이 같은 기능을 제공하는데 무엇이 다를까?
차이점
동기(sync), 비동기(async)의 차이
for는 동기방식이다
따라서, for문 안에 오류가 나면 에러 위치 이후의 이벤트들은 동작하지 않고 멈춰버린다.
foreach는 비동기 방식이다. - ES6 문법으로, 콜백함수를 뿌린다.
따라서, foreach문 안에 에러가 발생하더라도 멈추지 않고 동작한다.
가변적인 배열이나 리스트 크기를 구할 필요가 없어 복잡한 반복문에 적합하다.
foreach 사용시 주의점
우리는 동기보다 비동기를 사용할 때 상대적으로 더 많은 오류를 만난다.
따라서 비동기 기반인 foreach 사용시에 만날 수 있는 오류들을 미리 알아두어야한다.
1. 원하는 순서와는 다르게 프로그램이 동작할 수 있다.
foreach문 이후에 반복문에서 수정한 변수를 사용할 때,
2. break, return로 반복문을 탈출할 수 없다.
비동기 방식이기 때문에 break나 return를 만나더라도 멈추지 않고 동작한다.
해당 번째의 루프만 진행되지 않고 다른 루프는 여전히 진행된다.
예시)
반응형
'React' 카테고리의 다른 글
[React] Next.js 관련 면접 질문 및 답변 가이드 (0) | 2023.07.13 |
---|---|
JWT (JSON Web Tokens)에 대하여 (0) | 2023.07.04 |
[React] input is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML` 오류 (0) | 2022.10.06 |
[React] antd table에서 pagination시 rowSelection값 유지하기 (0) | 2021.06.01 |
[React] 비동기 통신에서 this가 먹지 않을 때 (0) | 2021.06.01 |