*람다식(Lambda Expression)은 프로그래밍에서 간결하고 유연하게 함수를 표현**하기 위해 도입되었습니다. 람다식은 익명 함수(Anonymous Function)를 간단히 표현한 것으로, 기존 함수 선언 방식보다 짧고 직관적인 코드 작성을 가능하게 합니다.
람다식이 도입된 이유는 다음과 같습니다:
기존 함수 선언:
const numbers = [1, 2, 3, 4, 5];
const squares = numbers.map(function(n) {
return n * n;
});
console.log(squares); // [1, 4, 9, 16, 25]
람다식 사용:
const squares = numbers.map((n) => n * n);
console.log(squares); // [1, 4, 9, 16, 25]
기존 방식:
function isEven(n) {
return n % 2 === 0;
}
const evens = [1, 2, 3, 4, 5].filter(isEven);
console.log(evens); // [2, 4]
람다식 사용:
const evens = [1, 2, 3, 4, 5].filter((n) => n % 2 === 0);
console.log(evens); // [2, 4]
setTimeout(() => {
console.log("1초 후 실행됩니다.");
}, 1000);
const getStatus = (score) => (score > 50 ? "Pass" : "Fail");
console.log(getStatus(75)); // "Pass"
const fetchData = (url, callback) => {
setTimeout(() => {
callback(`Data from ${url}`);
}, 1000);
};
fetchData("https://api.example.com", (data) => {
console.log(data); // "Data from https://api.example.com"
});
this) 문제 해결 (JavaScript의 화살표 함수 특징)this 바인딩 문제를 해결합니다. 화살표 함수는 상위 스코프의 this를 유지하므로, 콜백 함수 내부에서의 this 혼란을 줄여줍니다.function Timer() {
this.seconds = 0;
setInterval(() => {
this.seconds++; // 화살표 함수는 상위 스코프의 `this`를 사용
console.log(this.seconds);
}, 1000);
}
const timer = new Timer();
this가 달라질 수 있었지만, 화살표 함수는 이를 방지합니다.람다식은 다음과 같은 이유로 도입되었습니다:
this) 문제 해결(JavaScript 화살표 함수의 경우).