자바스크립트 프로그래밍 실력을 한 단계 높일 수 있는 방법! 고차함수!
자바스크립트에서 함수는 특별하게 취급한다.
즉, 함수를 데이터(string, number, boolean, array, object)를 다루듯 할 수 있다는 것을 의미한다.
console.log(sum(5));
// ReferenceError: Cannot access 'sum' before initialization
const sum = function(num) {
return num + num;
}
고차 함수는 다른 함수를 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));
자바스크립트에서 기본적으로 내장되어 있는 고차 함수를 내장 고차 함수라 한다.
배열 메소드들 중 일부가 고차 함수에 해당한다.
let arr = [1, 2, 3, 4];
let output = arr.filter(even => even % 2 === 0);
console.log(output); // [2, 4]