20.08.14 [Function]

박종찬·2020년 8월 14일
0

TIL

목록 보기
15/89
post-thumbnail

자바스크립트 프로그래밍 실력을 한 단계 높일 수 있는 방법! 고차함수!

일급 함수(First-class Function)

자바스크립트에서 함수는 특별하게 취급한다.

  • 변수에 함수를 할당할 수 있다.
  • 다른 함수의 argument로 전달될 수 있다.
  • 다른 함수에서 반환값으로 함수를 리턴할 수 있다.

즉, 함수를 데이터(string, number, boolean, array, object)를 다루듯 할 수 있다는 것을 의미한다.

  • 변수에 함수를 저장할 시 호이스팅이 적용되지 않는다.
console.log(sum(5));
// ReferenceError: Cannot access 'sum' before initialization

const sum = function(num) {
  return num + num;
}

고차 함수(Higher-Order Function)

고차 함수는 다른 함수를 argument로 받거나 다른 함수를 반환하는 함수를 말한다.

다른 함수의 argument로 전달되는 함수를 콜백 함수(callback function)라고 한다.

//함수를 리턴하는 경우..
const sum = function(num1) {
  return function(num2) {
    return num1 * num2;
  }
}

console.log(sum(5)(2));
//다른 함수를 인자로 받는 경우..
function squared(num) {
  return num ** 2;
}

const sum = function (callback, num) {
  return callback(num);
}

console.log(sum(squared, 10));

내장 고차 함수

자바스크립트에서 기본적으로 내장되어 있는 고차 함수를 내장 고차 함수라 한다.

배열 메소드들 중 일부가 고차 함수에 해당한다.

  • Array.prototype.filter()
let arr = [1, 2, 3, 4];
let output = arr.filter(even => even % 2 === 0);

console.log(output); // [2, 4]
  • forEach, find, filter, map, reduce, sort, some, every
profile
반가워요! 사람을 도우는 웹 개발자로 성장하기! :)

0개의 댓글