< 반복문 - for 문 >
1. 숫자에서의 for 문
for (초기값; 조건식; 증감식) {
// 실행할 코드
}
// 초깃값 : 증감식의 반복횟수를 카운트 하는 역할임. for 문 내부에서만 유효함.
// 조건식: for 문의 코드 실행 여부를 결정. true일 경우 실행, false 일경우 중단.
// 증감식: for 문을 실행한 후 초기값 변수를 증/감 시키기 위한 표현식
-> 중첩되는 코드를 반복문을 사용해 간결하게 만드는 것이 목표.
2. 문자열에서의 for 문
// 1. 문자의 index (순서)
let str = 'abcde';
console.log(str[0]); //'a'
// 2. indexOf() 메소드. 특정 문자의 인덱스를 확인할 수 있음.
console.log(str.indexOf('c')); // 2
// 3. .length 메소드. index의 길이를 알 수 있음.
console.log(str.length); // 5
-> 문자열에는 문자의 순서를 알 수 있는 index가 있음.
-> index는 0부터 시작함. ( 문자열 마지막 문자의 index는 문자열 길이보다 1 작음.)
-> for문은 원하는 사용기능에 따라 n 중으로 중첩해서 사용할 수 있음.
< 반복문 - while 문 >
1. while 문
while (조건식) {
실행할 식;
증감식;
}
// 만약 증감식이 없다면 무한루프에 갇힐 수 있음.
-> 조건식에 벗어날때까지 while 내부 코드를 실행.
-> for 문에 비해 반복횟수가 명확하지 않을 때 사용.
2. do-while문
do {
실행 식;
// 조건이 맞지 않더라도 do-while의 실행식코드가 최소 한 번은 실행됨.
} while (조건식)
-> 조건에 맞지 않더라도 일단 한번은 무조건 내부 코드를 실행하고 싶을 때 사용.
< 함수 >
1. 함수 정의
//1. 함수선언문으로 정의한 함수
// 함수 선언 후, 외부에서 갖다 쓰는식
function 함수 이름 (매개 변수1, 매개 변수2, ...) {
내부 실행 코드 ;
return 반환값;
};
//2. 함수 표현식으로 정의한 함수
// 변수에 함수를 할당하여 함수를 표현
let 변수 이름 = funtion (매개 변수1, 매개 변수2, ...) {
내부 실행 코드;
return 반환값;
}
//3. 함수 호출
함수 이름 (전달인자1, 전달인자2 ...); // 함수 선언문 호출
변수이름 (전달인자1, 전달인자2 ...); // 함수 표현식 호출
-> 입력을 받은 후 함수 내부의 코드를 실행 한 후 결과값을 반환하는 과정의 묶음.
-> 외부에서 입력값을 전달하여 호출 할 수 있고, 입력값으로 함수를 실행한 후 결과를 다시 외부로 반환함.
-> function 키워드로 함수를 선언 할 수 있음.
2. 함수 호출
-> 함수 선언문인 경우 : 함수이름(함수 인자1, 함수 인자 2 ...);
-> 함수 표현식인 경우 : 변수 이름(함수 인자1, 함수 인자 2 ...);
3. 매개변수와 전달인자.
-> 매개 변수 : 함수 코드 안에서 변수처럼 취급됨.
-> 전달 인자 : 함수 호출시 소괄호 안에 넣는 값. 매개변수에 값을 할당 하는 역할임.
-> 만약 매개 변수가 있는데 전달인자를 입력하지 않으면 매개변수는 undefined로 초기화 됨.
4. return문
-> 외부에서 전달 받은 매개변수 값으로 함수 내부 코드를 실행 한 후 결과값을 다시 외부에 주는 역할.
-> 함수는 코드를 실행하다가 return을 만나면, 값을 외부로 반환하고 실행을 종료함.
< 느낀점 >
연습 문제를 풀었을 때, 문제를 읽는 게 가장 헷갈렸다.. 코드를 작성하다가도 뭐였지? 내가 뭘 리턴 해야 되더라? 라는 생각을 했다. 그러다가 체크 포인트 시간에 의사코드를 작성해 보라는 조언을 받았다.
입력과 출력의 각 타입과 조건을 먼저 주석으로 적고 시작하는 것이다.
그러다보니 연습문제를 풀 때 실수가 많이 없어졌다.
로봇공학을 배울 때, state diagram과 flow chart를 이용해서 과제를 많이 했었는데 비슷한 느낌으로 연습문제를 풀때 의사코드를 사용하니 한결 수월했다.
'프론트엔드 블로깅 챌린지 > FE' 카테고리의 다른 글
SEB_FE 블로깅 챌린지 _ 9일차 (JavaScript 기초 - 연습 문제) (0) | 2023.02.23 |
---|---|
SEB_FE 블로깅 챌린지 _ 8일차 (JavaScript 기초 - 연습 문제) (0) | 2023.02.22 |
SEB_FE 블로깅 챌린지 _ 6일차 (JavaScript 기초 1) (0) | 2023.02.20 |
SEB_FE 블로깅 챌린지 _ 5일차 (CSS와 HTML을 이용한 계산기 만들기) (0) | 2023.02.17 |
SEB_FE_44기 블로깅 챌린지 _ 4일차 (CSS 기초와 Selector_2) (1) | 2023.02.16 |