Unit 1 회고

YEN J·2022년 9월 20일
0

code states

목록 보기
13/43

고차 함수

일급 객체의 세 가지 특징

  • 변수에 할당할 수 있음
  • 다른 함수의 전달인자로 전달될 수 있음
  • 다른 함수의 결과로 리턴될 수 있음
    • 콜백 함수(callback function): 고차 함수(caller)의 전달인자로 전달되는 함수
    • 함수는 대표적인 일급 객체

고차함수

  • 함수를 전달인자로 받는 함수
  • 함수를 리턴하는 함수

내장 고차 함수

filter, map, reduce

  • filter 메서드: 모든 배열 요소 중 특정 조건을 만족하는 요소(내가 원하는 요소)를 걸러냄, 기존 배열 수정x
    • 특정 조건은 함수 형태로 filter 메서드의 전달인자로 전달
    • filter 메서드는 고차함수
      • 함수를 전달인자로 받기 때문
    • 함수가 실행되는 과정
      메서드는 배열의 요소를 콜백 함수에 다시 전달하고 콜백 함수는 전달받은 배열의 요소를 받아 함수 실행 후 내부 조건에 따라 참, 거짓으로 리턴함
  • map 메서드: 모든 요소에게 동일한 행동을 준 값에 대하여 모두 반환
    • 행동은 함수로 작성 후 인자로 넣음, 기존 배열 수정x
  • reduce 메서드: 배열의 하나의 값으로 만들어줌
    • 초기값 설정, 없으면 배열의 첫 번째 요소가 초기값
    • 초기값은 누적값의 기반
    • 누적값이 반환
    • 활용 가능성 높음
      • 문자열이나 숫자 등을 합치거나 더하고 빼기, 제일 작은 수 큰수 비교, 배열 이외의 다른 형태로 만들 수 있음

고차 함수의 중요성

  • 추상화: 복잡한 것을 압축해서 핵심만 추출한 상태로 만드는 것
    • 추상화는 곧 생산성의 향상을 의미
    • 추상화를 통해 반복적인 작업을 줄여주는데 대표적으로 함수가 있음
    • 함수를 통해 얻은 추상화를 한 단계 더 높인 것인 고차 함수
      • 고차 함수는 값 수준의 추상화에서 사고(함수)의 추상화로 끌어올림

알아두면 좋을 내용

고차 함수(추가)

  • forEach 메서드: 주어진 함수를 배열 요소 각각에 대해 실행
    • 주어진 callback(함수)을 배열에 있는 각 요소에 대해 오름차순으로 한 번씩 실행
    • 순회하지만 map, filter와 같이 배열을 리턴해주지는 않음(반복문의 역할 수행)
  • every 메서드: 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 검사하고 boolean 값 반환
  • some 메서드: 배열 안의 어떤 요소라도 주어진 판별 함수를 통과하는지 검사하고 boolean 값 반환
  • find 메서드: 주어진 판별 함수를 만족하는 첫 번째 요소의 값을 반환
    출처

<오늘의 일기>
Section2의 첫째 날. 첫째 날이기 때문에 조금은 여유롭게 공부할 수 있겠지 생각했는데 나의 행복한 상상을 완전히 빗나갔다..ㅎ
처음 고차 함수를 접한 순간 정말 당황했고 심지어 공부하라고 주어진 시간도 부족했다..
하지만 역시 힘들게 공부한만큼 어제의 나보다 머릿속에 들어온 게 많아 왠지 모르게 재미있기도 했다.
앞으로 더 어려울 날만 남았다고 하는데 걱정이 되기도 하지만 미래를 걱정하기보다 우선 지금은 하는데까지 열심히 해봐야겠다!

0개의 댓글