- 변수나 자료구조에 저장할 수 있다.
- 함수의 매개변수에 전달할 수 있다.
- 함수의 반환값으로 사용될 수 있다.
const pow = function (num) {
return pow * pow;
};
함수는 무명의 리터럴로 생성할 수 있다. 런타임에 리터럴이 평가되어 객체가 만들어지고, 변수에 할당된다.
const mul = function (num) {
return num * num;
};
function cal(f, num) {
return f(num);
}
cal(mul, 5); //25
cal함수의 인자로 mul 함수를 전달했다.
function mul(a) {
return function (b) {
return a * b;
};
}
mul(3)(4); //12;
고차함수란 다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수이다.
위 조건을 설명하면서 선언한 함수들이 고차함수라고 할 수 있다. javascript 내장 고차함수로
filter, map, reduce등이 있다.
let arr = [5, 12, 6, 100, -5];
function tenOver(value) {
return value >= 10;
}
arr.filter(tenOver); //12,100
function log(message, callback) {
console.log(message);
callback();
}
function complete() {
console.log("complete");
}
log("message", complete);
//message
//complete
그 외에도 클로저, 커링 등 (추후 개별적으로 포스팅)