javascript for...in, for...of

이동환·2023년 4월 12일

javascript

목록 보기
2/5

언급할 내용
1. for...in과 for...of의 차이
(배열에서 for in울 쓰면 안 좋은 이유)
2. forEach의 단점 - break 안 된다.
3. some(), every() - break 된다.

(1)
for in - index나 key가 나옴. 보통 객체를 순회시킴.
index로 외움
문서에는 열거 가능한 속성을 순회한다고 나옴.
속성으로 key나 index가 있구나. 이런 느낌으로 이해함.

for of - iterable 객체를 순회시키면 요소를 매개변수로 받을 수 있음.
순회 가능한 자료형
object fail로 외움. 객체를 돌리면 오류가 난다.
배열, 문자열, Map, Set, DOM 등이 iterable 객체이다.

ChatGPT에서 배열은 for in을 안 쓰는 게 좋다고 하던데 그런 이유를 하나 발견함.
for in에서 순회하는 index의 경우 문자열로 출력이 됨.
그래서 arr[i+1] 같은 걸 하면 문자열 합치기가 되서 undefined가 출력이 될 것임.

iterable 객체란 Symbol.iterator() 메소드를 구현한 타입을 말한다.
문자열, 배열, Map, Set, DOM 객체 등이 있다.

해당 iterable 객체들을 spread operator(...)를 통해 배열로 바꿀 수 있고 for...of를 통해 요소들을 순회할 수 있다.

(2)
forEach의 단점. 중간에 break를 사용할 수 없음.
return 문 작성 시 continue 처럼 동작함. 콜백 함수를 return 시키기 때문인 듯.
forEach((e, i) => {
})

(3)

arr.some((e, i, arr) => {
  return true; <- break
  return false; <- continue
  return 안 될 시 그냥 넘어감.
})
arr.every(e => {
  return false; <- break
  return true; <- continue
  return 안 할 시 break 됨.
}
profile
개발을 즐기고 싶다.

0개의 댓글