Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 고차 화살표 함수(Higher-Order Arrow Functions) 완벽 정리

JavaScript에서는 함수를 하나의 객체로 취급합니다. 그렇기 때문에 함수를 다른 함수의 매개변수로 전달할 수 있고, 심지어 어떤 함수가 실행 결과로 또 다른 함수를 반환하는 것도 가능합니다.

JavaScript의 함수는 일급 객체(first-class function)입니다. 즉, 함수를 변수에 담거나 객체의 속성으로 저장하고, 배열의 요소로도 넣을 수 있다는 의미입니다.

고차 화살표 함수란?

고차 함수(higher-order function)는 다음 중 하나 이상을 수행하는 함수를 말합니다.

  • 함수를 매개변수(인자)로 받는다
  • 함수를 반환값으로 돌려준다
  • 두 가지 작업을 모두 수행한다

화살표 함수(arrow function) 문법과 결합하면 코드를 더욱 간결하고 읽기 쉽게 작성할 수 있습니다.

예제 코드

아래는 JavaScript에서 고차 화살표 함수를 활용한 예제입니다. 배열의 각 요소를 두 배로 만들어 새로운 배열을 반환하는 코드입니다.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .result,
   .sample {
      font-size: 18px;
      font-weight: 500;
      color: rebeccapurple;
   }
   .result {
      color: red;
   }
</style>
</head>
<body>
<h1>Higher order arrow functions in JavaScript</h1>
<div class="sample">[22,33,44,55]</div>
<br />
<div class="result"></div>
<br />
<button class="Btn">CLICK HERE</button>
<h3>Click on the above button to double each element of the above array</h3>
<script>
   let resEle = document.querySelector(".result");
   let BtnEle = document.querySelector(".Btn");
   let doubleNum = (ele) => {
      return ele * 2;
   };
   let arr = [22, 33, 44, 55];
   function doubleArray(arr, fn) {
      let doubleArr = [];
      arr.forEach((element) => {
         doubleArr.push(doubleNum(element));
      });
      return doubleArr;
   }
   BtnEle.addEventListener("click", () => {
      resEle.innerHTML = "New array = " + doubleArray(arr, doubleNum);
   });
</script>
</body>
</html>

코드 설명

  • doubleNum: 전달받은 숫자를 두 배로 곱해 반환하는 화살표 함수입니다.
  • doubleArray(arr, fn): 배열과 함수를 매개변수로 받는 고차 함수입니다. 내부적으로 forEach를 사용해 각 요소에 함수를 적용한 뒤 새로운 배열을 반환합니다.
  • addEventListener의 콜백 역시 화살표 함수로 작성되어, 버튼 클릭 시 결과를 화면에 출력합니다.

실행 결과

JavaScript 고차 화살표 함수(Higher-Order Arrow Functions) 완벽 정리

'CLICK HERE' 버튼을 클릭하면 아래와 같이 각 요소가 두 배가 된 새로운 배열이 출력됩니다.

JavaScript 고차 화살표 함수(Higher-Order Arrow Functions) 완벽 정리

마무리

고차 화살표 함수를 활용하면 반복 로직을 재사용 가능한 형태로 추상화할 수 있어 코드의 유연성과 가독성이 크게 향상됩니다. 실무에서는 map, filter, reduce 같은 배열 메서드가 대표적인 고차 함수로 널리 사용되고 있으니 함께 익혀두면 좋습니다.