회사 프로젝트에서 데이터를 추가하거나 수정할 때 아니면 데이터를 파싱 할 때
데이터 유무를 체크하는 기능이 필요한 경우가 항상 있었는데
if문을 여러 개 써서 사용하는 것이 비효율적이라고 생각했습니다.
그래서 다른 방법이 없나 찾아보다가 for-in, for-of를 사용하면 쉽게 해결된다는 것을 알게 되었습니다.
먼저 for-in을 사용한 예부터 보겠습니다.
위 예시를 보게 되면 obj라는 Obejct를 생성하고
아래의 for-in 문에서 Object를 순회하면서 key와 value를 각각 표출하고 있습니다.
따라서 key, value를 조회할 수 있으므로 value가 없는 경우
예를 들면 사용자 이름이 없는 경우 사용자 이름이 없음을 사용자에게 알릴 수 있습니다.
(alert 함수 또는 팝업 사용)
다음으로 for-of를 사용한 예입니다.
위의 예시도 방금 전의 예와 마찬가지로
obj라는 Obejct를 생성하고
마찬가지로 그 아래에서 for-of 문에서 Object를 순회하면서 key와 value를 각각 표출하고 있습니다.
하나 다른 점이 있다면 Object 객체의 entries 메서드를 사용했다는 점입니다.
for-of를 사용하려면 iterable 속성이 있어야 하기 때문입니다.
즉 반복이 가능해야 되는데 Array, Map, Set, String과 같은 객체 타입이어야 합니다.
entries 메서드를 사용하지 않고 for-of를 순회하려고 한다면 다음과 같은 에러가 발생됩니다.
따라서 for-of문을 사용하려면 반복이 가능한 객체 타입이어야 합니다.
만약에 Ojbect 객체가 아니라 Map 객체를 순회하면 문제없이 수행되는 것을 확인할 수 있습니다.
참고로 for-of 문은 ES6부터 추가된 것이라고 하니 지금부터 숙지하고 있으면 좋을 거 같습니다.
'dev > 자바스크립트' 카테고리의 다른 글
자바스크립트 객체 생성 (0) | 2020.04.30 |
---|---|
callback 함수 사용 (0) | 2020.04.28 |
배열 find filter (0) | 2019.09.22 |
jQuery clone 메소드 (0) | 2019.09.22 |
forEach break&continue (0) | 2019.08.23 |