컴퓨터에게 반복 작업을 시키는 것은 간단하다. 반복 작업 코드를 복사해서 붙여 넣으면 된다.
하지만 그 코드가 무수히 많아지고 반복되는 코드라면 분명 나중에 문제가 될 것이다.
이때 활용하는 것이 반복문이다.
for in 반복문
배열과 함께 사용할 수 있는 반복문은 for in 반복문이 있다. 배열의 요소를 하나하나 꺼내서 특정 문장을 실행할 때 사용한다.
for반복문의 반복 변수(위의 코드에서 i)에는 요소의 인덱스들이 들어온다. 이를 활용해서 배열 요소에 접근할 수 있다.
하지만 for in 문은 사진과 같이 사용해야 안정적인(예상에서 벗어나지 않는) 형태로 쓸 수 있는 조금은 위험한 반복문이라고 한다.
fruits라는 배열의 hasOwnProperty라는 메소드를 사용해서 해당 배열이 i번째의 요소가 있는지 확인을 한 다음에 요소가 있다면
내가 작성한 코드를 실행시키는 것이다.
for of 반복문
for of 반복문은 요소의 값을 반복할 때 안정적으로 사용할 수 있다.
for in 문에서는 좀 위험하게 작동할 수 있던 부분이 for of 문에서는 더 쉽게 사용 가능하다.
for 반복문
일반적인 for 반복문은 특정 횟수만큼 조건을 주어서 결과가 참인 경우 코드 블록을 실행한다.
for(변수 선언문 또는 할당 문; 조건식; 증감식) {
조건식이 참인 경우 반복 실행될 문
}
사진과 같이 for문의 반복문은 i = 0부터 시작을 하고 i가 1씩 증가하면서 3 미만 즉 2가 될 때까지 총 3번 실행한다.
for문을 작성할 때 주의사항으로 변수를 let키워드로 선언해줘야 한다.
const로 선언할 시에 타입 에러가 발생한다
값을 재할당할 수 없는 변수에 값을 재할당하려고 시도했기 때문이다.
다음으로 var를 변수로 for문을 돌리게 됐을 때를 살펴보자
사진과 같이 let으로 i를 선언한 for문 밖에서 i를 찍어보려 했을 때 오류가 발생한다.
for문 밖에서 i에 접근할 수 없기 때문이다.
다음은 var로 변수를 할당했을 때이다.
위 사진에서 변수 i의 값은 for 루프가 끝난 다음에도 유지가 된다. 왜냐하면 var로 선언한 변수는 let과 const와는 다르게 변수가 선언될 때 다르게 동작하는데 block레벨이 아닌 function 레벨에서 범위가 정해지기 때문이다.
또 var를 사용하면 var 호이스팅 이라는 문제도 있는데 var호이스팅은 다른 예제에서 살펴보는 것이 좋을 것 같다.
결론적으로 for 문 안에서 var로 선언한 변수 block을 벗어나서 값이 유효하게 된다
그러니 var로 선언하는 것은 좋은 방법이 아닌 것 같다.
while반복문
while 반복문은 if 조건문과 형태가 비슷한 반복문으로 while문에서 사용되는 조건식의 결과가 참이면 코드를 계속해서 실행시킨다.
for문은 반복 횟수가 명확할 때 주로 사용하고 while문은 반복 횟수가 불명확할 때 주로 사용한다.
while(boolean 표현식) { //조건식
실행할 코드
}
만약 while반복문의 경우 조건이 변하지 않는다면 무한히 반복 실행하므로 조건을 거짓으로 만들 수 있는 내용이 문중에 포함되어 있어야 한다.
이렇게 반복문이 무한 반복되는 것을 무한 루프라고 부른다.
사진과 같이 while 문에서 반복이 중단되는 코드를 넣어주지 않는다면 계속해서 실행하게 된다.
위 사진과 같이 i라는 변수에 0 숫자 값을 넣어 선언하고 배열 array에 1, 2, 3, 4 숫자 요소를 넣은 길이가 4인 배열 선언
while 반복문의 조건식을 보면 i 가 array.length 보다 작을 때까지만 실행 즉 i 가 3 일 때까지만 실행한다. 총(4번)
이렇게 되면 총 4번의 코드가 실행 뒤에 while문은 종료하게 된다.
'javascript' 카테고리의 다른 글
함수 문제 풀기 (0) | 2022.11.11 |
---|---|
break 와 continue 키워드 (0) | 2022.11.10 |
비파괴적 처리와 파괴적 처리 (0) | 2022.11.08 |
if 문 과 switch 문 그리고 삼항 연산자 (0) | 2022.11.08 |
Null 과 Undefined 와 NaN (0) | 2022.11.07 |