패스트캠퍼스/프론트엔드 아카데미 : 제 1강 JavaScript & TypeScrip
패스트캠퍼스 환급챌린지 24일차 : 김민태의 프론트엔드 아카데미 : 제 1강 JavaScript & TypeScript Essential 강의 후기
Tan-
2025. 7. 24. 21:45
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://fastcampus.info/4n8ztzq


250724(목) 24일차
문법 - 일급 함수
일급 함수
함수를 변수에 넣거나, 함수의 인자로 전달하거나, 함수의 반환값으로 사용할 수 있는 개념
즉, 함수를 데이터처럼 다룰 수 있다
함수가 인자로 전달되는 경우
function ul(child) {
return `<ul>${child}</ul>`;
}
function makeLi(container, contents) {
const liList = [];
for (const content of contents) {
liList.push(`<li>${content}</li>`);
}
return container(liList.join(""));
}
console.log(makeLi(ul, ["Mon", "Tue", "Wed"]));
ul 함수는 단순히 ul 태그로 감싸는 역할
makeLi는 리스트 데이터를 받아 li 요소로 만들고, 그 결과를 인자로 받은 함수(ul)에게 위임
함수가 반환되는 경우
function discountPrice(rate) {
return function (price) {
return price - (price * rate * 0.01);
};
}
const summerPrice = discountPrice(30);
const winterPrice = discountPrice(10);
console.log(summerPrice(567000)); // 396,900
console.log(winterPrice(567000)); // 510,300
discountPrice(30)은 30% 할인 계산기를 반환
반환된 함수는 특정 원가에 적용 가능
summerPrice, winterPrice처럼 의미있는 이름을 붙일 수 있어 가독성과 표현력이 뛰어남
함수를 단순히 코드를 묶는 단위로만 생각한다면
인자로 넘기거나 반환값으로 활용하는 방식은 다소 낯설게 느껴질 수 있지만
이번 강의를 통해 함수도 값처럼 다룰 수 있고, 그래서 더 유연하고 표현력 있는 코드를 만들 수 있으며
역할을 나누고 조합하는 방식으로 코드 구조를 더 잘 설계할 수 있다.


