피드로 돌아가기
Dev.toFrontend
원문 읽기
단순 선언부터 Generator까지, JavaScript 함수의 진화와 선택 기준
Types of Functions in JavaScript with example and it's Importance.
AI 요약
Context
초기 JavaScript는 단순한 코드 재사용을 위한 기본적인 함수 정의 방식만 제공. 언어가 성장하며 비동기 처리, 스코프 관리, 객체 지향 설계라는 복잡한 요구사항 직면. 코드 가독성 저하와 전역 오염 문제를 해결하기 위한 다양한 함수 형태의 도입 필요.
Technical Solution
- Hoisting을 통한 선언 전 사용이 가능한 Function Declaration으로 기본 재사용 로직 구현
- 함수를 값으로 취급하여 동적 전달이 가능한 Function Expression 및 Anonymous Function 도입
- Lexical this 바인딩 문제 해결과 보일러플레이트 제거를 위한 Arrow Function 설계
- let·const 도입 전 전역 변수 오염 방지를 위해 즉시 실행되는 IIFE 구조 활용
- 비동기 non-blocking 환경의 작업 완료 시점 제어를 위한 Callback 및 Higher-Order Function 전략 적용
- 상태를 유지하며 실행을 일시 중지하고 재개하는 Generator Function으로 정밀한 제어 흐름 구축
Key Takeaway
함수의 진화는 단순히 문법적 설탕을 추가한 것이 아니라 스코프 제어와 비동기 처리라는 런타임의 한계를 극복해 온 과정. 문제의 성격에 맞는 함수 타입을 선택하는 것이 코드의 유지보수성과 실행 효율을 결정하는 핵심 설계 원칙.
실천 포인트
this 바인딩이 필요한 경우에는 일반 함수를, 간결한 콜백이나 렉시컬 스코프 유지가 필요한 경우에는 Arrow Function을 선택할 것