for문은 조건에 충족하는 지정 횟수만큼 반복 실행하는 횟수가 정해진 반복문 입니다.
for문은 반복 횟수를 기준으로 반복 처리를 하는 for 문과, 여러 개의 요소를 가지는 배열, 객체 등의 전체 개수를 기준으로 전체를 반복 순환하는 for ~ in, for ~ of, forEach 문 등 여러 종류가 있습니다.
for 문
for(시작값; 조건문; 간격조건) {
// 실행 구문
}
// 예시 - 1부터 9까지 홀수만 출력하는 경우
for(let i=1; i<10; i=i+2) {
console.log(i);
}
for 루프문의 의미는 "시작 값에서 시작해 조건문의 조건을 충족(true)하는 동안, 간격 조건 만큼 값을 순차적으로 증가시키면서 //실행 구문을 반복 실행한다." 입니다.
루프를 도는 조건을 체크하는 용도로 사용하는 숫자 변수 값이 하나 필요합니다.
for ~ of 문
for ~ of 문은 배열(Array), 문자열(String), 맵(Map), 셋(Set) 객체에 사용할 수 있습니다. 규격 명세에는 [Symbol.iterator] 속성이 있는 객체에만 사용할 수 있다고 되어있기 때문에 일반 객체에는 사용할 수 없습니다.
Iterable object(반복 가능한 객체)를 반복.
일반 객체의 속성에 접근하려면 for ~ in 을 사용.
for(let 요소변수이름 of 대상){
// 반복 실행문
}
// 예시
let friends = [
{name: '라이언'. age: 5}.
{name: '어피치'. age: 4}
];
for (let friend of friends) {
console.log('이름: ' + friend.name + ', 나이: ' + friend.age);
}
// 이름: 라이언, 나이: 5
// 이름: 어피치, 나이: 4
!주의
for, for ~ of 반복문에서 배열이나 객체의 요소를 삭제하는 작업을 하면 에러를 발생시킬 수 있습니다.
요소를 삭제하는 방법에 따라서는 배열 요소는 삭제되었지만, 배열 길이는 줄지 않는 경우도 있기 때문에, 예상과는 다른 결과를 가져올 수도 있습니다.
반복문 안에서는 순환을 하고 있는 배열이나 객체의 요소를 삭제하는 것은 피해야 합니다.
for ~ in 문
객체의 전체 속성 키를 나열하는데 사용하는 반복문 입니다. (객체 데이터를 반복)
배열(Array), 문자열(String), 맵(Map), 셋(Set) 객체에 사용할 경우 배열의 인덱스 값만 반화되므로 주의해야 합니다.
for(let 속성 in 객체) {
// 속성 처리 구문
}
// 예시
let ryon = {name: '라이언', age: 5, gendor: 'male'};
for(let prop in ryon) {
console.log('속성: ' + prop + ' 값: '+ ryon[prop]);
}
// 속성: name 값: 라이언
// 속성: age 값: 5
// 속성: gendor 값: male
forEach 문
범용인 기본 순환 구문은 아니며 배열 전용의 메서드 입니다. 배열의 모든 요소를 순환하는 메서드로, 콜백 함수를 이용해 배열 요소에 다양한 처리를 할 수 있습니다.
배열 요소 순환 처리에 필요한 요소 객체와 인덱스 값을 모두 인자로 받을 수 있습니다.
배열.forEach(function (요소[, 인덱스]) {
// 요소 처리 실행문
});
인덱스는 갱략 가능합니다. 요소가 첫번째 파라메터로 온다는 점에 유의해야 합니다.
예를 들어 for ~ of 처럼 간결한 코드를 작성할 수 있지만, 배열의 메서드이기 때문에 배열에만 사용할 수 있습니다.
순환문 중에서 가장 많이 사용됨.
참고자료
도서 - ES6로 기초부터 다시 배우는 자바스크립트 파워북
'javascript' 카테고리의 다른 글
javascript 함수의 이해 (0) | 2023.03.08 |
---|---|
while문의 이해(반복문) (0) | 2023.02.15 |
javascript 조건문 if와 switch문 (0) | 2023.02.01 |
javascript 연산자 (0) | 2023.01.16 |
javascript 형 변환 (0) | 2023.01.11 |