Javascript/JS Flow
2-2. 함수 선언문과 함수 표현식
헬크로스
2020. 1. 26. 02:35
함수선언문과 함수표현식
- 함수선언문
function a(){ return 'a'; }
- 기명 함수표현식
var b = function bb(){ return 'bb'; }
- (익명) 함수표현식
var c = function(){ return 'c'; }
- 브라우저들이 업데이트되면서 기명 함수표현식을 사용하는 이점이 사라져서 거의 사용하지 않는다.
- 익명 함수표현식의 선언되고 정의되는 과정
- 변수 c 선언
- 익명함수 선언
- 변수 c에 익명함수를 할당
- 선언한 함수를 변수에 할당한다 => 함수표현식
- 함수선언문과 함수표현식의 차이는 '할당' 여부
- 할당을 하지 않으면 전체가 호이스팅의 대상이되고 할당을 하는 경우 함수를 그 자리에 남아있고 변수만 호이스팅된다.
- 함수선언문보다 함수표현식 사용을 권장한다. 안전하고 예측 가능한 코드가 되기 때문.