함수 선언식은 호이스팅에 영향을 받는다.

표현식은 X

→ 따라서 표현식으로 쓰는 게 에러 관리나 추적에 훨씬 용이하다.

함수 표현식의 장점

→ 함수 선언식에서도 전부 가능.

JS 엔진은 함수표현식으로 선언을 할 때는 익명함수를 할당한 변수명과 같은이름을 함수에 붙이고, 함수선언식으로 선언할 때는

function foo(){
	console.log('foo');
}

->

var foo = function(){
	console.log('foo');
}

와 같이 선언을 하게 된다.

함수 선언식, 함수 표현식, 함수 생성자함수를 사용한 방법 모두 내부적으로는 Function() 생성자를 사용하여 생성되므로 생성된 함수들은 내부 [[prototype]] 링크로 Function.prototype을 갖는다.