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)가 없는 함수
    • 함수 몸통에 입출력 관련 코드가 없어야 한다
    • 함수 몸통에서 매개변숫값을 변경시키지 않는다(즉, 매개변수는 constreadonly 형태로만 사용한다)
    • 함수는 몸통에서 만들어진 결과를 즉시 반환한다
    • 함수 내부에 전역 변수나 정적 변수를 사용하지 않는다
    • 함수가 예외를 발생시키지 않는다
    • 함수가 콜백 함수로 구현되었거나 함수 몸통에 콜백 함수를 사용하는 코드가 없다
    • 함수 몸통에 Promise와 같은 비동기 방식으로 동작하는 코드가 없다
  • 깊은 복사와 얕은 복사
    • 깊은 복사(deep-copy) : 대상 변숫값이 바뀔 때 원본 변숫값은 그대로인 형태로 동작
    • 얕은 복사(shallow-copy) : 얕은 복사가 된 배열의 내용을 변경하면 원본 배열 또한 변경

05-5 튜플 이해하기

  • 튜플(tuple)
    • 보통 튜플을 사용할 때는 타입 별칭(alias)으로 튜플의 의미를 명확하게 함
출처 : Do it! 타입스크립트 프로그래밍
 

Do it! 타입스크립트 프로그래밍

‘타입스크립트’를 배우는 김에 ‘함수형 프로그래밍’까지 정주행하자!10만 건의 빅데이터 처리와 API 서버 & 리액트 웹 개발까지!이 책은 ES6 자바스크립트를 경험한 독자가 타입스크립트를

book.naver.com

728x90