람다(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로 배열의 각 요소에 해당 함수를 적용한 결과를 새로운 배열에 담아 화면에 출력합니다. 즉, 함수를 데이터처럼 주고받는 람다의 전형적인 활용 사례라고 할 수 있습니다.
실행 결과
버튼을 클릭하기 전 화면 −

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

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