Written by coh at home
[혼공스] 2주차-3주차 본문
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라는 메서드를 사용하여 제거한다.
- 인덱스로 제거하기
arr.splice(INDEX, number of targets)
const fruits = ['apple', 'banana', 'mandarine']
fruits.splice(2,1)
["mandarine"]
fruits
(2) \["apple", "banana"\]
- 값으로 제거하기
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
- 인덱스를 뽑아내는 방법
for (const i in arr) {}
const todos = \[...\]
for (const i in todos) {
console.log(`${i}'s todo :${todos[i]}`)
}- 내부 요소를 뽑아내는 방법
const todos = [...];
for (const todo of todos){
console.log(`${todo}`);
}
- 가장 보편적 for문
for (let i = 0; i < todos.length; i++){
....
}while
내가 좋아하는 while문이다. 조건을 만족시킬 때까지 loop를 돌려서 임무를 완수시킬 수 있다.
let i = 0;
while (confirm('continue?')){
alert(`${i} counts`)
i += 1;
}