Skip to content

Commit

Permalink
study: JS의 Array 에 대해서 학습
Browse files Browse the repository at this point in the history
  • Loading branch information
Juahjoah committed Jan 3, 2024
1 parent 25598ab commit 18f27c7
Showing 1 changed file with 21 additions and 16 deletions.
37 changes: 21 additions & 16 deletions JS/theory.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,48 +3,53 @@
<h3> 1. JavaScript 기초 문법 </h3>

- let : 블록 스코프 지역 변수를 선언 (추가로 동시에 값을 초기화)
- var을 대체해서 사용하는 키워드
- 재할당이 가능하지만, 재선언은 불가능함.
- 10으로 만든 값을 20으로 바꾸는 것은 가능하지만, 10이라고 정해놓은걸 20이라고 다시 선언하는 것은 불가능.
- 블록 스코프를 갖는 지역 변수를 선언하고, 선언과 동시에 원하는 값으로 초기화가 가능함.
- var을 대체해서 사용하는 키워드
- 재할당이 가능하지만, 재선언은 불가능함.
- 10으로 만든 값을 20으로 바꾸는 것은 가능하지만, 10이라고 정해놓은걸 20이라고 다시 선언하는 것은 불가능.
- 블록 스코프를 갖는 지역 변수를 선언하고, 선언과 동시에 원하는 값으로 초기화가 가능함.
- const : 블록 스코프 읽기 전용 상수를 선언 (추가로 동시에 값을 초기화)
- constant : 상수(불변의)
- 재할당 불가능, 재선언 불가능 : 한 번 만들면 끝!
- 선언 시 반드시 초기값을 설정해야 하며, 이후에는 값 변경이 불가능함.
- let 과 동일하게 블록 스코프를 가짐.
- constant : 상수(불변의)
- 재할당 불가능, 재선언 불가능 : 한 번 만들면 끝!
- 선언 시 반드시 초기값을 설정해야 하며, 이후에는 값 변경이 불가능함.
- let 과 동일하게 블록 스코프를 가짐.
- 블록 스코프(block scope) : if, for, 함수 등의 중괄호 `{}` 내부를 가리키며, 블록 스코프를 가지는 변수는 블록 바깥에서 접근이 불가능함. 괄호가 열리고 닫힌 부분을 말함. ‘스코프=범위’ 괄호가 열리고 닫히는 부분에서만 유효.
- 블록 내에서 선언한 변수는 블록 내에서만 값이 유효함. ➡ 바깥에서 접근 불가능
- 블록 내에서 선언한 변수는 블록 내에서만 값이 유효함. ➡ 바깥에서 접근 불가능
- var : 변수를 선언 (추가로 동시에 값을 초기화)
- 재할당 가능, 재선언 가능
- 함수 스코프(function scope)를 가짐
- 함수 스코프(function scope) : 함수의 중괄호 `{}` 내부를 가리킴. 함수 스코프를 가지는 변수는 함수 바깥에서 접근이 불가능함.

- 재할당 가능, 재선언 가능
- 함수 스코프(function scope)를 가짐
- 함수 스코프(function scope) : 함수의 중괄호 `{}` 내부를 가리킴. 함수 스코프를 가지는 변수는 함수 바깥에서 접근이 불가능함.

<h3> 2. Array Helper Methods </h3>

`map` : `array.map(callback(element[, index[, array]]))` <br>

- 각 배열에 대해서 콜백 함수를 한 번씩 실행하고, 콜백 함수의 반환 값을 요소로 하는 새로운 배열로 반환
- 기존의 배열을 다른 형태로 바꿀 때 유용한 함수
- ex. 기존 배열의 세제곱 수를 구하기

`filter` : `array.filter(callback(element[, index[, array]]))` <br>

- 각 배열에 대해서 콜백 함수를 한 번씩 실행하고, 콜백 함수의 반환 값이 true인 요소들만 모아서 새로운 배열로 반환
- 기존의 배열을 필터링하고 싶을 때 유용한 함수
- ex. 원하는 조건에 맞는 값을 모아 새로운 배열 만들기 -> 장 본 목록 배열에서 과일 종류를 담은 목록만들기

`find` : `array.find(callback(element[, index[, array]]))` <br>

- 각 배열에 대해서 콜백 함수를 한 번씩 실행하고, 콜백 함수의 반환 값이 true면 해당 조건을 만족하는 첫번째 요소를 반환
- 만약, 찾는 값이 배열 안에 없다면 undefined를 반환
- ex. 내가 원하는 사람 이름 찾기

`every`: `array.every(callback(element[, index[, array]]))` <br>

- 배열의 모든 요소가 주어진 판별 함수를 통과하면 true를 반환하고, 하나의 요소라도 통화하지 못하면 false를 반환. 빈 배열은 항상 true로 반환

`some`: `array.some(callback(element[, index[, array]]))` <br>

- 배열의 요소 중 하나라도 주어진 판별 함수를 통과하면 true를 반환하고, 모든 요소가 통과하지 못하면 false가 반환. 빈 배열은 항상 false로 반환
- every보다 좀 더 관대한 메서드!

`reduce`: `array.reduce(callback(acc, element[, index[, array]])[, initialValue])` <br>

- 인자로 주어지는 함수(콜백 함수)를 배열의 각 요소에 대해 한 번씩 실행한 후에 acc에 담아 하나의 값으로 반환
- initialValue는 콜백 함수를 최초로 호출할 때, acc에 담겨 있는 기본 값임. 누적될 값들의 초기값으로, 설정하지 않는 경우 첫번째 요소의 값이 됨.
- 배열을 하나의 값으로 계산하는 동작이 필요할 때 사용하는 메서드이며, map, filter 등 여러 배열 메서드 동작을 대부분 대체할 수 있는 메서드임.
Expand All @@ -53,10 +58,10 @@
<h3> 3. 동기/비동기 </h3>

- 동기: Task 순차 처리. 직렬식 수행
- 데스크가 돌고, 데이터를 가져오기 위해 일하는 것이고, CPU는 시작시에만 거의 사용됨.
- 데스크가 돌고, 데이터를 가져오기 위해 일하는 것이고, CPU는 시작시에만 거의 사용됨.
- 비동기: Task 병렬 처리 → 멀티, 싱글 모두 활용 가능함.
- 보통 CPU가 하는 일이 많은 경우 비동기 가능
- 보통 CPU가 하는 일이 많은 경우 비동기 가능

<br>

- ❗ 그런데, 비동기코드를 동기식으로 사용해야 하는 경우가 있음.
- ❗ 그런데, 비동기코드를 동기식으로 사용해야 하는 경우가 있음.

0 comments on commit 18f27c7

Please sign in to comment.