변수로 잘 쓰는 i는 iterator(반복자)의 약자.
for in
for of처럼 반복시 상수 생성. 객체의 모든 key에 대해 코드를 실행하도록 해주는 반복문. 배열 또한 객체 이므로... for of와 차이는 인덱스 활용시 사용 한다는것!!(index니까 in으로 기억) 인덱스는 숫자가 아닌 문자!
for(const key in obj) {console.log(key); console.log(obj[key]);}
while
어떤 조건이 충족되는 동안에만 코드를 실행. 조건이 거짓이 되면 반복문을 빠져나옴.
while (isLoggedIn) { ... }
조건에 카운터를 사용할 수는 있지만 보통은 안함. 반복문 내부에서 어느시점이 되면 변경될 불리언을 가지고 있으면서 변경이 되기 전까지 계속해서 코드 실행.
do while
do { 실행할 내용 } while ( 조건 );
본문을 먼저 실행시키고 조건을 나중에 체크한다.
보통 while문에는 ;을 안붙이지만 do while문에는 ;를 붙인다.
while문은 조건이 변하기 때문에 반복문을 얼마나 실행할지 미리 알 수 없는 경우에 주로 쓰고 보통의 상황에서는 for문을 쓴다.
반복문 안에 반복문을 넣어서 중첩 반복문을 만들 수 있다.
외부반복문이 먼저 실행되고 매번 외부 반복문이 반복될때마다 내부 반복문 전체가 실행되며 이 작업이 완료된 후에만 외부 반복문의 다음 반복이 시작됨
logEntry라는 객체가 있을때 console.log(logEntry.key)는 logEntry의 key값에 접근할 수 없다. 실제 key의 이름이 key가 아니라 heal... 다른것이기 때문. 대신 console.log(logEntry[key])로 key값에 접근 가능하다.
이때 []내의 이름은 문자열, 혹은 접근하고자 하는 property의 이름을 포함한 변수여야한다!!!
코드
결과