Written by coh at home

[혼공스] 2주차-3주차 본문

카테고리 없음

[혼공스] 2주차-3주차

och 2025. 7. 14. 22:09

2주차 숙제

<!DOCTYPE html>
<html lang="en">
<head>
<script>
    const x = 15;
    if (x > 10 && x < 20) 
        console.log('조건에 맞습니다.');
</script>
</head>
<body>

</body>
</html>

3주차 숙제

비파괴적 처리 : 처리 후에 원본 내용이 변경되지 않음.
장점:원본을 보존할 수 있다.
단점:메모리 소모가 크다.

파괴적 처리 : 처리 후에 원본 내용이 변경됨.
장점: 메모리를 절약할 수 있다.
단점: 원본이 사라져서 위험하다.

2/3주차 공부 내용 정리

조건문

const date = new Date();
const hour = date.getHours();
const minute = date.getMinutes();
const second = date.getSeconds();

if (hour >= 12 ) console.log('Afternoon');

반복문

배열

배열은 자료형 상관없이 다 넣을 수 있다. 파이썬과 비슷. index로 접근 가능하고 요소 개수 확인도 가능하다.

const arr = [273, 'tom', true, function(){}, {}, [273,10]]
arr.length

배열 자료형은 기본적으로 push 메서드를 지원하여 stack을 쌓을 수 있다.
또한 배열에 인덱스에 요소를 추가할 때 마지막 인덱스보다 1보다 큰 값을 추가하면 그 사이 값들은 empty가 된다.

arr[10] = 'temp'
6~9번째 인덱스는 empty가 된다.

배열 요소 제거하기 : splice

배열의 요소를 제거하는 방법은 2가지이다. index로 제거하는 법과 값을 기반으로 제거하는 법이다. 어느 것이든 splice라는 메서드를 사용하여 제거한다.

  1. 인덱스로 제거하기
    arr.splice(INDEX, number of targets)
    const fruits = ['apple', 'banana', 'mandarine']
    fruits.splice(2,1)
    ["mandarine"]

fruits  
(2) \["apple", "banana"\]
  1. 값으로 제거하기
    const index = arr.indexOf(target)
    arr.splice(index, 1)

요즘 실무에서 람다 표현식을 사용해서 요소들을 순회하며 filter기능으로 제거하는 것을 더 많이 쓰고 있긴 하지만, 이런 기본적인 문법들이 많이 중요한 것 같다.

배열 특정 위치 요소 추가하기

잘 쓰진 않는다고 한다. 당연하게도 특정 위치에 요소를 추가하면 그 위치의 요소들을 한 칸씩 인덱싱을 밀어내야하기 때문에 자료구조상 손해가 많다.
arr.splice(index, 0, target) : 해당 인덱스 위치에 target을 추가

자료의 비파괴와 파괴

비파괴적 처리 : 처리 후에 원본 내용이 변경되지 않음.
파괴적 처리 : 처리 후에 원본 내용이 변경됨.

과거는 메모리가 많이 부족해서 배열과 같은 것은 파괴적처리를 통해 메모리를 절약함. 하지만 현대는 메모리가 풍부하기 때문에 배열에서 원본을 복사하여 비파괴적 처리를 함.

비파괴적 처리

const a = 'hi'  
const b = 'hey'

const c = a + b

> a  
> "hi"  
> b  
> "hey"  
> c  
> "hihey"
파괴적처리

arr.push메서드는 arr자체의 요소를 추가하기 때문에 arr의 원본이 달라진다.

요즘은 불변성을 중요하게 생각한다. 까닭은, 사이드 이펙트를 줄이기 위해서 불변성을 적극 사용하고 있다.

반복문

for

  1. 인덱스를 뽑아내는 방법

for (const i in arr) {}

const todos = \[...\]  
for (const i in todos) {  
console.log(`${i}'s todo :${todos[i]}`)  
}
  1. 내부 요소를 뽑아내는 방법
const todos = [...];  
for (const todo of todos){  
console.log(`${todo}`);  
}
  1. 가장 보편적 for문
for (let i = 0; i < todos.length; i++){  
....
}

while

내가 좋아하는 while문이다. 조건을 만족시킬 때까지 loop를 돌려서 임무를 완수시킬 수 있다.

let i = 0;  
while (confirm('continue?')){  
alert(`${i} counts`)  
i += 1;  
}