Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 항해99후기
- 백준
- react
- 항해99
- 날씨 api
- 중복카테고리
- 부트캠프항해
- 배열 메소드
- 항해99솔직후기
- 중복선택
- 자바스크립트
- greedy
- 로딩 후 실행
- jQuery
- 클라이언트 컴포넌트
- server component
- 그리디
- 카테고리필터
- 서버 컴포넌트
- 프로그래머스
- 배열 중복 제거
- 실전프로젝트
- 알고리즘
- 숫자를 별점으로
- JavaScript
- db수정
- 탐욕알고리즘
- 동전 0
- 항해99추천
- NextJS v13
Archives
- Today
- Total
공부 및 일상기록
[Javascript] 고차함수란 본문
고차함수 (HOF, Higher Order Function)
고차함수란 함수를 매개변수로 사용하거나 함수를 반환하는 함수이다. 쉽게 말해 우리가 정의해서 사용하는 함수가 함수를 인자로 받아서 사용하거나 결과값이 함수라는 이야기 이다.
고차함수는 왜 사용할까?
추상화를 하기 위해 사용한다.
추상화는 곧 생산성의 향상과 같다. 프로그램을 작성할 때, 반복해서 사용하는 로직은 별도의 함수로 작성하곤 한다. 이 역시 추상화의 좋은 사례이다.
고차함수 역시 함수를 전달받거난 함수를 리턴하면서 한번 더 생각할 깊이를 낮춰주고 사용법만 익히면 복잡하게 얽힌 기능을 수행해주는 사고수준에서의 추상화를 시키는 사례이다.
추상화의 수준이 높아지는 만큼 생산성도 비약적으로 상승하게 된다.
우리가 자주 사용했던 고차함수
자바스크립트에 내장된 고차함수가 있다.
바로 filter(), map(), reduce() 함수가 고차함수의 예시이다.
필터를 예시로 들면...
어떤 배열이 있을 때, 해당 배열을 필터링 하려면 for문을 통해 탐색을 하고, if문을 통해 필터링을 하여 결과 값에 push해야 할 것이다. 하지만 우리는 간단히 배열.filter() 을 통해 조건만 넣어준다면 쉽게 필터를 할 수 있다.
눈에 보기에도, 이해하기에도 매우 쉽지만 사실 내부에선 똑같이 for문이 탐색하고 if문이 필터를 했을 뿐이다.
이처럼 고차함수를 잘 만든다면 어떠한 동작을 하는 복잡한 함수를 사용법을 간단하게 하고, 내부에 복잡한 로직은 보여지지 않게 되면 가독성 또한 증가되어 생산성이 높아질 것이다.
'개발 > Javascript' 카테고리의 다른 글
[Javascript] AJAX 란? (0) | 2023.01.16 |
---|---|
[Javascript] this (0) | 2023.01.16 |
[Javascript] passed by value, passed by reference (0) | 2023.01.15 |
[Javascript] ==, === 의 차이점 (0) | 2023.01.15 |
[Javascript] Arrow function (화살표 함수) (0) | 2023.01.15 |