728x90
05 배열과 튜플
05-1 배열 이해하기
- for...in 문
01: let names = ['Jack', 'Jane', 'Steve'] 02: 03: for(let index in names) { 04: const name = names[index] 05: console.log(`[${index}]: ${name}`) 06: }
- for...of 문
01: for(let name of ['Jack', 'Jane', 'Steve']) 02: console.log(name)
- 제네릭(generics) 타입 : 타입을 T와 같은 일종의 변수(타입 변수(type variable))로 취급하는 것
- 전개 연산자(spread operator)
01: let array1: number[] = [1] 02: let array2: number[] = [2, 3] 03: let mergedArray: number[] = [...array1, ...array2, 4] 04: console.log(mergedArray)
05-2 선언형 프로그래밍과 배열
- 명령형 프로그래밍(imperative programming)
- 입력 데이터 얻기
- 입력 데이터 가공해 출력 데이터 생성
- 출력 데이터 출력
- 선언형 프로그래밍(declarative programming)
- 문제를 푸는 데 필요한 모든 데이터 배열에 저장
- 입력 데이터 배열을 가공해 출력 데이터 배열 생성
- 출력 데이터 배열에 담긴 아이템 출력
05-3 배열의 map, reduce, filter 메서드
- filter 메서드
filter(callback: (value: T, index?: number): boolean): T[]
- map 메서드
map(callback: (value: T, index?: number): Q): Q[]
- reduce 메서드
reduce(callback: (result: T, value: T), initialValue: T): T
05-4 순수 함수와 배열
- 순수 함수(pure function) : 부수 효과(side-effect)가 없는 함수
- 함수 몸통에 입출력 관련 코드가 없어야 한다
- 함수 몸통에서 매개변숫값을 변경시키지 않는다(즉, 매개변수는 const나 readonly 형태로만 사용한다)
- 함수는 몸통에서 만들어진 결과를 즉시 반환한다
- 함수 내부에 전역 변수나 정적 변수를 사용하지 않는다
- 함수가 예외를 발생시키지 않는다
- 함수가 콜백 함수로 구현되었거나 함수 몸통에 콜백 함수를 사용하는 코드가 없다
- 함수 몸통에 Promise와 같은 비동기 방식으로 동작하는 코드가 없다
- 깊은 복사와 얕은 복사
- 깊은 복사(deep-copy) : 대상 변숫값이 바뀔 때 원본 변숫값은 그대로인 형태로 동작
- 얕은 복사(shallow-copy) : 얕은 복사가 된 배열의 내용을 변경하면 원본 배열 또한 변경
05-5 튜플 이해하기
- 튜플(tuple)
- 보통 튜플을 사용할 때는 타입 별칭(alias)으로 튜플의 의미를 명확하게 함
출처 : Do it! 타입스크립트 프로그래밍
728x90
'Do it! > 타입스크립트 TS' 카테고리의 다른 글
Do it! 타입스크립트 프로그래밍 - 반복기와 생성기 (0) | 2021.01.26 |
---|---|
Do it! 타입스크립트 프로그래밍 - 함수와 메서드 (0) | 2021.01.19 |
Do it! 타입스크립트 프로그래밍 - 객체와 타입 (0) | 2021.01.18 |