함수 선언식
함수 선언식은 일반적인 함수 선언을 말한다.
일반적으로 아래와 같이 사용한다.
<script>
function sum(num1, num2){
return num1 + num2;
}
sum(2,3)
// sum = 5;
</script>
함수 표현식
익명 함수를 값으로써 변수에 할당한 표현식을 함수 표현식이라고 한다.
함수 표현식은 아래와 같은 문법으로 선언하고 호출할 수 있다.
<script>
let sum = function(num1,num2) {
return num1 + num2;
}
sum(2,3)
// sum = 5
</script>
함수 선언식과 표현식의 차이점
함수선언식은 호이스팅에 영향을 받지만, 함수 표현식은 호이스팅에 영향을 받지 않는다.
함수 선언식은 코드를 구현한 위치와 관계없이 호이스팅에 의해 자바스크립트를 해석할 때 맨 위로 끌어 올려진다.
예를 들자면
<script>
sum(2,3)
// sum = 5;
function sum(num1, num2){
return num1 + num2;
}
</script>
위와 같은 코드는 자바스크립트 호이스팅에 의해
<script>
function sum(num1, num2){
return num1 + num2;
}
sum(2,3)
// sum = 5;
</script>
해석할때 선언식이 맨위로 끌어올려지는 것이다.