/ JAVASCRIPT

함수선언식과 함수표현식

JavaScript 관련 글입니다.




오늘은 함수선언식과 함수표현식에 대해서 간단히 정리해보겠습니다.

함수선언식


함수선언식이란 “function” 키워드를 사용해서 함수를 정의하는 방법입니다.

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

hello();

그냥 우리가 기본적으로 알고있는 방식입니다.

함수 표현식


함수표현식은 별도의 변수에 함수를 할당하는 방식입니다. 자바스크립트에서는 함수도 하나의 값으로 취급될 수 있습니다.

const hello = function () {
    console.log('hello');
}

위처럼 hello라는 변수에 함수를 할당합니다.

const hello = () => console.log('hello');

보통은 익명함수를 사용하며 화살표함수를 많이 사용합니다.

차이점


함수선언식과 함수표현식의 차이점은 무엇일까요? 이는 호이스팅에 영향을 받는지에 차이가 있습니다.

함수선언식은 호이스팅에 영향을 받고, 함수표현식은 호이스팅에 영향을 받지 않습니다.

hello();

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

hello함수를 호출하고 이후 함수선언식을 통해서 hello함수를 선언하면 호이스팅이 되기 때문에 에러가 발생하지 않고 정상적으로 실행됩니다.

hello();

const hello = () => {
    console.log('hello');
}

반면 위처럼 함수표현식형태로 했을 경우 호이스팅이 되지 않기 떄문에 에러가 발생하게 됩니다.

정리


  • 함수선언식이란 “function” 키워드를 사용해서 함수를 정의하는 방법입니다.
  • 함수표현식은 별도의 변수에 함수를 할당하는 방식입니다.
  • 함수선언식은 호이스팅에 영향을 받고, 함수표현식은 호이스팅에 영향을 받지 않는다.


End.