혼공자 Chapter4

Chan·2022년 11월 10일
0

혼공자

목록 보기
3/7
post-thumbnail

요약 내용

배열(array), 파괴적/비파괴적, 반복문(for in, for of, while, for)

배열이란

여러 자료를 묶어서 활용할 수 있는 특수한 자료
여러 개의 변수를 한 번에 선언해 다룰 수 있는 자료형

let arr = [1, 2, 3]
let arr2 = ['배', '사과', '포도']
let arr3 = [1, 3, '딸기', true, function(), {}, [320, '문자열']

요소

배열 내부에 들어있는 각각의 값을 요소라고 한다

각각의 배열의 요소에 접근할 수 있는데 요소의 순서를 인덱스라고 한다
우리나라는 태어나자마자 나이가 1살이지만 0은 없는 숫자라고 표현하기도 한다
하지만 외국은 태어나자마자 나이가 0부터 시작이고 0을 처음 시작하는 숫자로 표현하기 때문에
JavaScript 인덱스의 순서는 0부터 시작한다고 생각해야 한다

let arr = [1, 3, 5, 7, 9]
arr[3] // 7을 출력함

배열에 접근하기

배열의 요소에 접근하려면 array[index값]으로 접근한다
배열의 갯수도 확인할 수 있는데 array.length로 확인할 수 있다.
1, 3, 5, 7, 9 배열의 길이는 총 5이므로 5가 출력된다

요소 추가, 제거

배열에 요소를 추가, 제거하는 방법으로는 push(), unshift(), shift(), pop(), splice() 등이 있다.
책에는 push, splice밖에 안나온다 일단 chapter4까지는.

let arr = [1, 3, 5, 7, 9]

arr.push(11)

console.log(arr) // (6) [1, 3, 5, 7, 9, 11] 출력

이 책에서는 배열의 길이로 마지막에 위치에 추가하는 법을 알려준다

splice()는 요소를 제거할 때 사용하기도 하지만 추가할 때도 사용한다
영문으로 splice는 접합이라는 의미이다
구간을 선택하고 나뉘어진 두 부분을 접합한다고 해서 splice인가보다

제거하는 방법

let arr = [2, 4, 6, 10]

arr.splice(3, 1)
// splice(자를 구간 인덱스, 제거할 개수)
console.log(arr) // (3)[2, 4, 6] 출력

추가하는 방법

arr.splice(2, 0, 5)
// splice(자를 구간 인덱스, 제거할 개수, 추가할 자료)
console.log(arr) // (4)[2, 4, 5, 6] 출력

자료의 비파괴/파괴

처리 후 원본의 상태 변화에 따라 구분
과거에는 컴퓨터 메모리가 많이 부족했다
그래서 프로그래밍 언어, 라이브러리들은 최대한 메모리를 절약해서 사용하는 방식으로 설계되어 있다
배열은 크기가 어느 정도인지 정해져 있지 않기 때문에 원본 결과를 모두 메모리에 저장하는 것은 위험할 수 있다
그래서 메모리 절약을 위해 array객체는 대부분 파괴적 처리로 이루어져 있다
중요한 것은 메모리는 절약할 수 있지만 원본이 사라지기 때문에 위험할 수 있다

  • 비파괴적 처리: 처리 후에 원본 내용이 변경되지 않음
    : slice(), String객체 대부분의 메소드

  • 파괴적 처리: 처리 후에 원본 내용이 변경됨
    : splice(), Array객체 대부분의 메소드

아쉽게도 어떠한 처리가 파괴적인지 비파괴적인지 구분하는 방법은 코드를 여러 번 실행하며 외우는 방법밖에 없다.

반복문

  • for in
const todos = ['반복문', 'for in', 'for of', 'while']
for (let i in todos) {
	console.log(i)
}

/* 출력
0
1
2
3
*/

for in 반복문은 배열보다 객체에 사용하기 편리한 것으로 알고 있다
key 값과 value 값이 있는 객체에 사용하기 편리한 것 같다

  • for of
const todos = ['반복문', 'for in', 'for of', 'while']
for (let todo of todos) {
	console.log(todo)
}

/* 출력
반복문
for in
for of
while
*/

제일 많이 사용하게 될 for of 반복문
배열과 세트라고 생각하면 될 것 같다.

  • for 반복문
const todos = ['반복문', 'for in', 'for of', 'while']
for (let i = 0; i < todos.length; i++) {
	console.log(todos[i])
}

/* 출력
반복문
for in
for of
while
*/

for of 반복문이 쓰이기 전 제일 처음 사용하는 for 반복문으로 알고 있다
현재는 for of 가 가장 많이 쓰이는 것으로 알고 있는데 예전에는 for문으로 많이 사용했던 것 같다

  • while
while (불 표현식) {
	문장
}

while 반복문은 조건이 변하지 않는다면 무한 루프가 진행되므로 조건을 거짓으로 만들 수 있는 내용이 문장에 포함되어야 한다.
break, continue 키워드를 사용하면 좋다

오늘 리뷰

for문으로 별찍기...
별을 도대체 왜찍나....
알고리즘 문제로 나오는 거겠지
유튜브 쇼츠에서 코딩 처음 시작할 때 별찍기 배우는 것이 나와서 봤는데
코딩 배우고 있는 것이 실감이 나는 중이다

profile
드디어 신발 신은 프론트엔드 개발자

0개의 댓글