반복적인 작업을 할 때 사용하는 가장 일반적인 문법.
처음 개발을 공부할 때에는 for문이 제일 큰 난관이었는데 계속 하다보니까 어느새 자연스럽게 이해가 됐다. 최고의 공부법은 역시 반복이다...
// 일반 for문 예제
for ( 초기식 ; 조건식 ; 증감식){
조건식을 만족할 경우 실행되는 문장
}
for(let i = 0; i<3; i++){
console.log("세번 반복합니다.")
}
// "세번 반복합니다." 가 3회 출력됩니다.
일반적인 for문이 익숙해지려고 하니까 그새를 못참고 또 나온 새로운 개념...
for문에도 종류가 있었다. for-of, for-in, forEach!
for과 마찬가지로 반복문이고, 배열이나 문자열을 돌면서 각 요소마다 특정한 작업을 하기 위해 사용된다.
// 일반 for문 예제
const arr = ["a", "b", "c"]
for( let i = 0, i< arr.length; i++){
console.log(arr[i])
/*
아래와 같이 출력됩니다.
'a'
'b'
'c'
*/
}
// for-of 문 예제
const arr = ["a", "b", "c"]
for( let ele of arr){
console.log(ele)
}
/*
아래와 같이 출력됩니다.
'a'
'b'
'c'
*/
}
여기서 주의할 점은 객체에서는 바로 사용이 불가능 하다는 점!
바로 사용이 불가능하다는 문장을 보면 다른 방법으로 우회해서 사용이 가능한 것 같은데, 바로 객체를 배열 형태로 변환해서 for-of를 사용한다.
object.entries
를 사용해서 객체를 배열로 바꾸고, 그 이후에 for-of 문을 사용한다.
const obj = { name: "이태민", group: "Shinee" };
const result = Object.entries(obj);
// [["name", "이태민"], ["group", "Shinee"]]
for (let element of result) {
let [key, val] = element; // 구조분해할당
console.log(key + '은(는) ' + val);
}
//'name은(는) 이태민'
//'group은(는) Shinee'
for-in도 마찬가지로 반복문인데, for-of처럼 Object.entires
를 이용해 배열로 전환을 하지 않아도 바로 객체에 적용이 가능하다. 단 순서대로 똑같이 순회하지 않을 수도 있다니 염두에 두고 사용하자!
// for-in문 예제
const obj = { name: "이태민", group: "Shinee" }
for (let key in obj) {
console.log(key + '은(는) ' + obj[key]);
}
//for-of문의 예제와 같은 결과 출력.
반복문의 탈을 쓴 메소드! for-of와는 확연히 다르게 배열에만 사용이 가능하다.
// forEach() 예제
const arr = ["a", "b", "c"]
arr.forEach(function(el){
console.log(el)
})
/*
아래와 같이 출력됩니다.
'a'
'b'
'c'
*/
}
for문에 비해서는 아직 많이 쓰지 않은 기억이라 아직 코드 작성할 때 얼타게 된다. for와 마찬가지로 반복문이고 최초식, 조건식, 증감식을 분할해서 작성한다. 범위를 지정할 수 없거나 결과가 언제 나올 지 알 수 없을 때에 주로 사용된다. 조건식 설정에서 삐끗하게 되면 무한 루프가 일어날 수 있으니 주의!
// while문 예제
let count = 0 //최초식
while(count !==5){ //조건식
console.log(count)
count++ //증감식
}
어제 뭐했니 #2에서 restAPI에 대해서 대단히 간략하게 서술했는데 수업을 들을 때는 막연하게 이해했다가 구글에서 다른 사람들이 작성한 개념들을 보고 아무것도 모르겠는 상태가 됐다.
restAPI 설계 가이드에 따라서 만든 API를 RESTful하다고 하는 모양이다. 실습을 하면 알겠는데 막상 이론을 보니 무슨 말을 하는지 전혀 모르겠는 상황! ㅠㅠ
언젠간 이해하겠지...