[TIL] JavaScript - 반복문 23.05.25

이상훈·2023년 5월 25일
0

[내일배움캠프]

목록 보기
11/68
post-thumbnail

✔️오늘 한일!

  • JS 종합반 5주차 완강, 1주차 2회독 시작
  • 2회독부터 사용할 깃 레포지터리 생성

DOM부터 클래스까지 맛보기로 종합반 강의를 완강했다. 2회독부터는 Git을 사용하면서 강의를 수강하려고 한다. 2회독부터는 알고리즘 문제도 하루에 2문제씩 해결하는 것을 목표로 진행 예정!
해결 중 막힌다면 참고문서를 찾아보는 것도 좋겠지만 충분한 시간을 두어서 스스로 해결할 수 있게끔 하고 6월말까지 적어도 Lv0문제들을 다 풀어보는것이 목표!


반복문의 기본형태와 간단한 사용예제 코드를 작성

1-1 for in 반복문

기본형태

for(const/let 반복 변수 in 배열/객체) {
	문장
}

간단한 사용예제

let daily = ['업무메일 확인', '아침회의', '운동']

for(let i in daily) {
  console.log(`${i}번째 할일 : ${daily[i]}`)
}
let car = {modelName: "bmw", modelYear: 2023, type: "gasoline", price: "50000$"}

for (let key in car) {
  console.log(key + ": " + car[key]);
}

1-2 for of 반복문

기본형태

for (const/let 반복 변수 of 배열) {
	문장
}

간단한 사용예제

let dailys = ['업무메일 확인', '아침회의', '운동']

for(let daily of dailys) {
  console.log(`오늘의 할일 : ${daily}`)
}

for in <-> for of 의 차이점은?

  • for in객체의 반복에서 사용
  • for of배열의 반복에서 사용
    -> for of의 경우 배열이 아닌 객체에서 사용하면 Uncaught TypeError가 발생하지만, for in의 경우 객체가 아닌 배열에서 사용해도 결과가 나오긴 한다. JS는 배열도 Object타입으로 인식하기 때문에 값이 나오지만 배열의 경우 key값이 아닌 index를 리턴한다.

- for in

1) Iterable object이면 모두 대상으로 함
2) 객체의 모든 열거 가능한 속성에 대해 반복
3) key를 리턴 (배열의 경우에는 index)

- for of

1)[Symbol.iterator] 속성을 가지는 collection만 대상으로 함
2)Iterable object이지만, prototype chain에 의한 Iterable은 대상에서 제외
→ Array, Map, Set, String, TypedArray, arguments 등
3)value를 리턴

1-3 for 반복문

기본형태

for (let i = 0; i < 반복 횟수; i++) {
	문장
}

간단한 사용예제

  for (let i = 0; i < 5; i++) {
    console.log(`${i}번째 반복입니다.`)
  }

for문은 초기값, 조건식, 증감식을 사용하여 반복 횟수를 제어한다.

2-1 while 반복문
while문은 불 표현식이 true면 계속해서 문장을 실행한다. 조건이 변하지 않는다면 무한루프가 발생하기 때문에 조건을 거짓으로 만들 수 있는 내용이 문장 내부에 포함되어야 한다.

confirm을 활용

  let i = 0
  while (confirm('계속 진행하시겠습니까?')) {
    alert(`${i}번째 반복입니다.`)
    i = i + 1
  }

배열과 함께 사용

  let i = 0
  const array = [1, 2, 3, 4, 5]

  while (i < array.length) {
    console.log(`${i} : ${array[i]}`)
    i++
  }

또는 switch에서 봤었던 break키워드나 continue 키워드를 사용하면 while 반복문에서 벗어날 수 있다.
continue키워드는 반복문 안의 반복 작업을 멈추고 반복문의 처음으로 돌아가 다음 반복 작업을 진행할 수 있게 해준다.

profile
코린이

0개의 댓글