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

JavaScript 화살표 함수로 구현하는 람다(Lambda) – 개념부터 실전 예제까지


람다(Lambda) 함수는 단 하나의 표현식으로 구성된 작은 익명 함수로, 하나 이상의 매개변수를 받을 수 있습니다. 람다의 핵심 특징은 함수 자체를 값처럼 취급하여 다른 함수의 인자로 전달할 수 있다는 점입니다.

JavaScript에서는 함수가 일급 객체(first-class object)로 취급되기 때문에, 함수를 변수에 할당하거나 다른 함수에 전달·반환하는 것이 자유롭습니다. 이러한 특성 덕분에 화살표 함수(arrow function)를 활용하면 람다를 아주 간결하게 구현할 수 있습니다.

예제 코드

<!DOCTYPE html>
<html lang="ko">
<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;
    }
    .sample,
    .result {
        font-size: 20px;
        font-weight: 500;
        color: blueviolet;
    }
    .sample {
        color: red;
    }
</style>
</head>
<body>
<h1>JavaScript 화살표 함수로 구현하는 람다</h1>
<div class="sample">[1,2,3,4,5,6,7]</div>
<div class="result"></div>
<br />
<button class="Btn">여기를 클릭하세요</button>
<h3>위 버튼을 클릭하면 배열의 각 요소가 제곱됩니다</h3>
<script>
    let BtnEle = document.querySelector(".Btn");
    let sampleEle = document.querySelector(".sample");
    let resEle = document.querySelector(".result");
    let arr = [1, 2, 3, 4, 5, 6, 7];
    let square = (item) => item * item;
    function arraySq(func, arr) {
        let newArr = [];
        arr.forEach((element) => {
            newArr.push(func(element));
        });
        resEle.innerHTML = "새로운 배열 = " + newArr;
    }
    BtnEle.addEventListener("click", (event) => {
        arraySq(square, arr);
    });
</script>
</body>
</html>

코드 동작 원리

위 예제에서 square는 전달받은 값을 제곱해 반환하는 화살표 함수입니다. arraySq 함수는 함수와 배열을 인자로 받아, forEach로 배열의 각 요소에 해당 함수를 적용한 결과를 새로운 배열에 담아 화면에 출력합니다. 즉, 함수를 데이터처럼 주고받는 람다의 전형적인 활용 사례라고 할 수 있습니다.

실행 결과

버튼을 클릭하기 전 화면 −

JavaScript 화살표 함수로 구현하는 람다(Lambda) – 개념부터 실전 예제까지

'여기를 클릭하세요' 버튼을 클릭하면 −

JavaScript 화살표 함수로 구현하는 람다(Lambda) – 개념부터 실전 예제까지

버튼을 누르면 [1, 2, 3, 4, 5, 6, 7] 배열의 모든 요소가 제곱되어 [1, 4, 9, 16, 25, 36, 49]라는 새로운 배열이 출력되는 것을 확인할 수 있습니다.