고차 함수

Ryurbsgks·2021년 10월 29일
0

JavaScript(JS)

목록 보기
13/15
post-thumbnail

고차함수

함수를 파라미터로 받을 수 있고 함수의 형태로 리턴할 수 있는 함수이다.

1. 콜백함수

함수를 파라미터로 받는 함수이다.

콜백함수를 사용하는 이유는 JS코드를 순차적으로 실행 즉 비동기적 프로그래밍을 할수 있기 때문이다.

2. 커리함수

리턴값이 함수인 함수이다.

3. 내장 고차함수

map

모든 요소에 동일한 행동에 대한 값을 반환

callback 함수를 각각의 요소에 대해 한번씩 순서대로 불러 그 함수의 반환값으로 새로운 배열을 만든다.

arr.map(callback(currentValue, index, array), thisArg)

map() 메서드의 구조는 callback함수와 thisArg매개변수를 받으며 callback함수의 인수로는 currentValue, index, array가 있다.
index, array, thisArg는 필수값이 아닌 Optional이다.

currentValue : 처리할 현재 요소
index : 처리할 현재 요소의 인덱스
array : map을 호출한 배열
thisArg : callback을 실행할 때 this로 사용하는 값

filter

모든 요소중 내가 원하는 값만 필터링하여 반환하는 메서드이다.

배열의 요소마다 주어진 callback 함수를 호출해 callback 값이 true면 해당 요소를 가지는 새로운 배열을 만든다.

arr.filter(callback(element, index, array), thisArg)

filter() 메서드의 구조는 callback함수와 thisArg매개변수를 받으며 callback함수의 인수로는 element, index, array가 있다.
index, array, thisArg는 필수값이 아닌 Optional이다.

element : 처리할 현재 요소
index : 처리할 현재 요소의 인덱스
array : filter를 호출한 배열
thisArg : callback을 실행할 때 this로 사용하는 값

reduce

배열을 하나의 결과값으로 반환하는 메서드이다.

배열 내에 존재하는 각 요소에 대해 callback 함수를 한 번씩 실행하고 누적 계산의 결과 값을 반환한다.

arr.reduce(callback(accumulator, currentValue, currentIndex, array), initialValue)

reduce() 메서드의 구조는 callback함수와 initialValue 인수를 받으며 callback함수의 인수로는 accumulator, currentValue, currentIndex, array가 있다.
currentIndex, array, initialValue는 필수값이 아닌 Optional이다.

accumulator : 콜백의 반환값을 누적
currentValue : 처리할 현재 요소
currentIndex : 처리할 현재 요소의 인덱스
array : reduce를 호출한 배열
initialValue : callback의 최초 호출에서 첫 번째 인수에 제공하는 값

initialValue를 제공한 경우 currentValue는 배열의 첫 번째 값과 같다.
initialValue를 제공하지 않았다면 accumulator는 배열의 첫 번째 값과 같고 currentValue는 두 번째와 같다.

forEach

주어진 callback 함수를 배열에 있는 각 요소에 대해 한번씩 실행하는 메서드이다.

arr.forEach(callback(currentValue, index, array), thisArg)

forEach() 메서드의 구조는 callback 함수와 thisArg 매개변수를 받으며 callback함수의 인수로는 currentValue, index, array가 있다.
index, array, thisArg는 필수값이 아닌 Optional이다.

currentValue : 처리할 현재 요소
index : 처리할 현재 요소의 인덱스
array : forEach를 호출한 배열
thisArg : callback을 실행할 때 this로 사용할 값

find

callback 함수가 참을 반환할 때까지 해당 배열의 각 요소에 대해서 callback 함수를 실행하는 메서드이다.

만약 callback 함수의 조건을 만족하는 요소를 찾았다면 find 메서드는 해당 요소의 값을 즉시 반환하고 그렇지 않으면 undefined를 반환한다.

arr.find(callback(element, index, array), thisArg)

find() 메서드의 구조는 callback 함수와 thisArg 매개변수를 받으며 callback함수의 인수로는 element, index, array가 있다.
index, array, thisArg는 필수값이 아닌 Optional이다.

element : 처리할 현재 요소
index : 처리할 현재 요소의 인덱스
array : find를 호출한 배열
thisArg : callback을 실행할 때 this로 사용할 값

sort

compareFunction 규칙에 따라서 정렬된 배열을 반환하는 메서드이다.

arr.sort(compareFunction)

compareFunction

sort() 메서드에서 정렬 순서를 정의하는 함수이다.

Optional값이며 생략하면 배열은 각 요소들을 문자열로 취급하여 유니 코드 값 순서대로 정렬된다.

compareFunction 은 2개의 배열 요소를 파라미터로 입력 받는다.
함수가 리턴하는 값이 0보다 작을 경우 a가 b보다 앞에 오도록 정렬한다.
함수가 리턴하는 값이 0보다 클 경우 b가 a보다 앞에 오도록 정렬한다.
0을 리턴하면 a와 b의 순서를 변경하지 않는다.

some

callback이 참을 반환하는 요소를 찾을 때까지 배열에 있는 각 요소에 대해 한번씩 callback 함수를 실행하여 해당하는 요소를 발견한 경우 some은 즉시 true를 반환하고 그 외엔 false를 반환한다.

arr.some(callback(currentValue, index, array), thisArg)

some() 메서드의 구조는 callback 함수와 thisArg 매개변수를 받으며 callback함수의 인수로는 currentValue, index, array가 있다.
index, array, thisArg는 필수값이 아닌 Optional이다.

currentValue : 처리할 현재 요소
index : 처리할 현재 요소의 인덱스
array : some을 호출한 배열
thisArg : callback을 실행할 때 this로 사용할 값

every

callback이 거짓을 반환하는 요소를 찾을 때까지 배열에 있는 각 요소에 대해 한번씩 callback함수를 실행하여 해당하는 요소를 발견한 경우 every는 즉시 false를 반환하고 그 외엔 true를 반환한다

arr.every(callback(element, index, array), thisArg)

every() 메서드의 구조는 callback 함수와 thisArg 매개변수를 받으며 callback함수의 인수로는 element, index, array가 있다.
index, array, thisArg는 필수값이 아닌 Optional이다.

element : 처리할 현재 요소
index : 처리할 현재 요소의 인덱스
array : every를 호출한 배열
thisArg : callback을 실행할 때 this로 사용할 값

4. 추상화

컴퓨터 프로그래밍에서의 추상화란 복잡한 소프트웨어 시스템을 효율적으로 설계하고 구현할 수 있는 방법이다.

추상화의 장점

  • 사용자가 낮은 수준의 코드를 작성하지 않도록 도와준다.
  • 코드 중복 방지 및 재사용성이 향상된다.
  • 사용자에게 영향을 끼치지 않은 채로 독립적으로 클래스의 내부 구현 변경 가능하다.
  • 중요한 세부 정보만 사용자에게 제공하므로 응용 프로그램 또는 프로그램의 보안 향상에 도움을 준다.
profile
코딩도전기

0개의 댓글