본문 바로가기

JavaScript

고차함수

고차함수

콜백 함수

콜백 함수란 다른 함수의 매개변수로 사용되는 함수를 말한다. 콜백 함수는 호출될 때 다른 함수에 의해 호출되는 함수로, 특정 작업을 수행하기 위해 전달된다. 또한, 다른 함수의 결과로 리턴될 수도 있다. 예를 들어, 배열의 각 요소에 대해 특정 작업을 수행하고 싶을 때 콜백 함수를 사용하여 원하는 작업을 정의할 수 있다.

function processArray(arr, callback) {
    for (let i = 0; i < arr.length; i++) {
        callback(arr[i]);
    }
}

function printValue(value) {
    console.log(value);
}

let myArray = [1, 2, 3, 4];
processArray(myArray, printValue);  // 배열의 각 요소를 출력함

 

고차 함수

고차 함수란 함수를 반환하거나 함수를 인수로 받을 수 있는 함수를 말한다. 고차 함수는 코드의 가독성을 높이고 재사용성을 증가시키는 데 유용하다.

익명 함수 반환

고차 함수는 익명 함수를 반환할 수 있다. 예를 들어, 두 숫자의 합을 계산하는 함수를 반환하는 고차 함수를 작성할 수 있다.

function createAdder(x) {
    return function(y) {
        return x + y;
    };
}

let addFive = createAdder(5);
console.log(addFive(3));  // 8을 출력함

내장 고차 함수

JavaScript에는 내장된 여러 고차 함수가 있다. Array.prototype.filter는 배열의 각 요소에 대해 조건식을 평가하고, 조건식을 만족하는 요소들로 새로운 배열을 만드는 함수이다.

let numbers = [1, 2, 3, 4, 5, 6];
let evenNumbers = numbers.filter(num => num % 2 === 0);
        console.log(evenNumbers);  // [2, 4, 6]을 출력함

조건식 사용

조건식은 단순히 if문 내에서만 사용할 수 있는 것이 아니다. 조건식은 다양한 고차 함수 내에서 활용될 수 있으며, 그 결과에 따라 데이터 처리 로직을 유연하게 구성할 수 있다.

예시: Array.prototype.map

Array.prototype.map 함수는 배열의 각 요소에 대해 주어진 함수를 적용한 결과로 새로운 배열을 만든다.

let numbers = [1, 2, 3, 4, 5];
let squaredNumbers = numbers.map(num => num * num);
        console.log(squaredNumbers);  // [1, 4, 9, 16, 25]를 출력함

이와 같이, 고차 함수는 함수형 프로그래밍의 기본 요소로서 코드의 가독성을 높이고 재사용성을 증가시키는 데 매우 유용하다. 다양한 내장 고차 함수를 활용하여 더 깔끔하고 효율적인 코드를 작성할 수 있다.

 

'JavaScript' 카테고리의 다른 글

비동기  (0) 2024.05.28
JS브라우저 DOM  (0) 2024.05.24
실습  (0) 2024.05.24
ES6  (0) 2024.05.23
클로저 - 원래 스코프 내부에서는 외부로 접근 가능한거 아니야?  (0) 2024.05.22