[프론트엔드 면접]함수 선언식과 함수 표현식의 차이는?
함수 선언식과 함수 표현식의 차이는?
- 가장 큰 특징은 바로 호이스팅이다.
- 호이스팅이란?
- 함수 선언식
var
과 같이 함수 스코프 스코프를 가진다.
- 클로져 사용
callback
으로 인자 전달
- 즉시 실행 함수(IIFE)
- 함수 표현식
let
const
와 같이 블록 스코프를 가진다.
- 호이스팅이 되지 않으므로 로컬 스코프의 복사본을 유지 가능
정리
- 호이스팅과 실행 순서 관련해서 코드가 어떻게 동작해야 하는지 확실히 알고 싶다면, 함수 선언식을 사용하면 좋다.
- 클로저 생성 및 객체 지향 프로그래밍과 같은 곳에서 사용되거나 콜백으로 사용될 필요가 있는 경우에는 함수 표현식을 사용하면 좋다