Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트 함수 표현식(Function Expression)으로 함수 정의하기

자바스크립트에서 함수 표현식(Function Expression)의 개념을 제대로 이해하려면, 먼저 함수 선언(Function Declaration)과 함수 표현식의 차이점을 알아야 합니다.

함수 선언(Function Declaration)

자바스크립트에서는 function 키워드를 사용해 함수를 선언합니다. 함수를 정의할 때는 function 키워드 뒤에 고유한 함수 이름, 매개변수 목록(비어 있어도 됨), 그리고 중괄호로 감싼 실행문 블록을 작성합니다.

다음은 예시입니다.

function sayHello(name, age) {
    document.write(name + " is " + age + " years old.");
}

함수 표현식(Function Expression)

함수 표현식은 문장이 function 키워드로 시작하지 않는다는 점이 가장 큰 특징입니다. 대신 변수에 할당되는 형태로 정의되며, 함수 이름을 붙인 기명(named) 함수 표현식과 이름 없는 익명(anonymous) 함수 표현식 모두 사용할 수 있습니다.

익명 함수 표현식

함수 이름 없이 바로 변수에 할당하는 방식입니다.

// 익명 함수 표현식
var a = function() {
    return 5;
}

기명 함수 표현식

함수에 이름을 지정한 후 변수에 할당하는 방식입니다. 함수 내부에서 자기 자신을 재귀적으로 호출할 때 유용합니다.

// 기명 함수 표현식
var a = function bar() {
    return 5;
}

이처럼 함수 표현식은 코드가 실행되는 시점에 생성된다는 점에서, 호이스팅(hoisting)이 적용되는 함수 선언과 동작 방식이 다릅니다. 상황에 맞게 두 방식을 적절히 활용하면 더 유연하고 깔끔한 코드를 작성할 수 있습니다.