벌써 3주차 입니다.
이번주는 "반복문" 입니다.
음..일단 04 Chapter 04는 반복문인데..
- 04-1 배열.
-이전 까지 자료형은 하나의 자료형에 하나의 값만 가질수 있었으나 배열은 하나의 자료형에 여러개의 값을 저장 할수 있는 자료형이다.
ex)
str은 문자열로 배열에 해당 한다. "안"은 0번째, "녕"은1번째, ~"요"는 4번째 배열의 요소에 저장 된다.
배열의 요소는 인덱스라고 한다.
ex)
결과..
배열의 요소 접근 방법.
- 배열 요소의 접근 방법을 한소스로 작성하여 보았습니다.
ex)
위의 예제 소스와 결과를 확인 하면 인덱스는 실제 배열 갯수 보다 -1이 작은것을 알수 있다.
자바스크립트는 배열의 길이가 고정이 아니다.
ex)
배열 요소 갯수가 처음 4개에서 1개(복숭아) 추가하여 5개 였다가(예제소스 3참조) 이후 19라인의 "복수아2"를 9번째 인덱스에 입력을 하니 배열 요소 갯수가 총 10개로 증가 하였다. 이로서 자바스크립트는 배열이 고정이 아닌 것을 알수 있다.
배열요소는 추가뿐만 아니라 제거도 가능하다.
제거는 "배열.splice(요소인덱스, 제거할 요소의 갯수)"와 값으로 요소를 제거할 수 있다.
ex)
위의 예제 소스처럼 Splice를 하여 마지막 9번째 인덱스에 저장된 데이터가 6번째로 이동한것을 알수 있다.
두번째 값으로 요소 제거
"배열.indexOf(요소값)"를 이용하여 배열의 값을 넣어 인덱스를 찾은 다음 삭제할 갯수를 넣어 요소를 제거 한다.
"배열.splice(배열.indexOf(요소값),1)" 한줄로 작성한 코드 이나
본래는 "배열.indexOf(요소값)"으로 먼저 삭제할 요소의 인덱스를 찾은 다음 "배열.splice(찾은 인덱스, 1)"로 해야 하나
한줄로 작성 하였다.
splice를 이용한 특정 위치에 요소 추가도 가능하다.
"배열.splice(인덱스, 0,추가할 요소)" 제거에서 추가 할 요소를 입력하면 원하는 인덱스 위치에 요소를 추가 할수 있다.
- 04-2 반복문
반복문은 말 그대로 반복되는 일을 반복할 수 있는 구문을 넣어 처리 하는 방식이다.
예로 위의 예제 소스 들중 배열을 일일이 0~9개까지 각 배열 요소들을 출력 하기 위해 10개의 요소를 일일히 작성해야 하나 반복문을 사용하면 간단히 작성할 수 있다.
-for in 반복문
> 기본적인 반복문으로 배열요소를 하나 하나 꺼내서 사용하고자 할때 사용한다.
-for of 반복문
>for in에서 반복변수에 인덱스가 들어 간다. 그래서 반복문 내부에 요소를 사용하므로 안정성 확보를 위해 추가 코드가 필요하다. 이런 불편함을 제거 한것이 for of이다.
- for 반복문
>for 반복문의 가장 기본형태이며, 특정 횟수만큼 반복이 가능합니다.기타 다른 언어에서도 같은 형식으로 사용 된다.
-while 반복문
> while 반복문은 if 조건문과 형태가 매우 비슷한 반복문이다. 단 if 조건문은 한번만 실행 하나 while는 true이면 계속 실행된다. 조건이 무조건 참이면 무한반복이 될 수 있다. 이를 방지 하기 위해서는 while문 안에서 조건을 바꿔주는 로직을 필요로 한다.
또는 Break(switch조건문에서 사용하는 키워드)와 Continue라는 키워드로 탈출 할 수도 있다.
이 키워드 들은 for문에서도 사용가능하다.
break는 반복문을 탈출하는데 사용하고, continue는 탈출하지 않고, 반복문 처음으로 돌아가 다음 반복 작업을 실행한다.
간단한 while반복문(무한루프)
-while반복문과 배열
-break 예시
-continue 예시
기본숙제
>비파괴적 처리 : 처리 후에 원본 내용이 변경되지 않는다.
장점 : 메모리에 저장된 내용이 변경 되지 않는다.
단점 : 메모리에 저장된 내용을 변경 하지 않으므로 중복된 메모리를 많이 사용할 수 있다.
현재의 pc는 가용 메모리가 풍부하므로 특별히 의식되지 않지만, 임베디드시스템의 경우 메모리 제약이
많으므로 단점으로 될수 있다.
>파괴적 처리 : 처리 후 원본 내용이 변경 된다.
장점 : 메모리를 중복으로 사용하지 않는다.단 메모리 제약이 있는 임베디드 시스템에서는 장점으로 볼수 있다.
단점 : 원본 메모리가 변경되어 원래의 값을 찾기가 어렵다.
추가 숙제
3. 다음 표시된 함수들이 파괴적 처리를 하는지 비파괴적 처리를 하는지 구분해 맞는것에 O표시하세요.
3.1.
strA의 내용이 변경되지 않았으므로 비파괴적 처리
3.2.
StrB의 내용이 변경되었으므로 파괴적 처리
3.3.
arrayC의 내용이 변경되지 않았으므로 비파괴적 처리
3.4.
srtD의 내용이 변경되지 않았으므로 비파괴적 처리
이상입니다.
혼자 공부하는 자바스크립트
# | 진도 | 기본 숙제(필수) | 추가 숙제(선택) |
1주차 (7/1 ~ 7/7) |
Chapter 01 ~ 02 | p. 54의 <파일 만들고 저장해 실행하기>에서 'Hello World' 출력하기 | Ch.01(01-1) 확인 문제 1번 상세하게 적고 인증하기 |
2주차 (7/8 ~ 7/14) |
Chapter 03 | p. 139 의 확인 문제 3번 문제 풀고 완전한 코드 만들어 비쥬얼 스튜디오 코드에서 실행 결과 인증하기 | p. 152의 <태어난 연도를 입력받아 띠 출력하기> 예제 실행하여 본인의 띠 출력한 화면 캡처하기 |
3주차 (7/15 ~ 7/21) |
Chapter 04 | 비파괴적 처리와 파괴적 처리의 의미와 장단점 설명하기 | p. 173 확인 문제 3번 문제 풀고, 풀이 과정 설명하기 |
4주차 (7/22 ~ 7/28) |
Chapter 05 | p. 202 <윤년을 확인하는 함수 만들기> 예제를 실행하여 2022년이 윤년인지 확인하는 결과 인증하기 | p. 240 확인 문제 1번 풀고, 풀이 과정 설명하기 |
여름방학 (7/29 ~ 8/4) |
럭키비키 즐거운 여름방학이잔앙 | ||
5주차 (8/5 ~ 8/11) |
Chapter 06 | 객체, 속성, 메소드가 무엇인지 설명하기 | p. 288 확인 문제 3번 풀고, 풀이 과정 설명하기 |
6주차 (8/12 ~ 8/18) |
Chapter 07 ~ 08 | p. 315의 <직접 해보는 손코딩>을 실행한 후 출력되는 고양이 이미지 캡처하기 | p. 352 누적 예제를 활용하여 본인의 할 일 목록을 만들어 캡처하기 |
'스터디 > 한빛-혼공학습단-혼공JS' 카테고리의 다른 글
[혼공js-12기] 6주차 Chapter 06 (08/12 ~ 08/18) (0) | 2024.08.16 |
---|---|
[혼공js-12기] 5주차 Chapter 06(08/05~08/11) (0) | 2024.08.07 |
[혼공js-12기] 4주차 Chapter 05(07/22~07/28) (0) | 2024.07.27 |
[혼공js-12기] 2주차 Chapter 03(07/08~07/14) (0) | 2024.07.13 |
[혼공js-12기] 1주차 Chapter 01~02(07/01~07/07) (0) | 2024.07.06 |