자바스크립트에서는 함수도 데이터형 중 하나로 간주합니다. 그래서 함수를 리터럴로 표현하고, 변수에 함수를 대입시키고, 다른 함수의 인수로 함수를 넘기고, 반환값으로 함수를 넘기는 등의 동작이 가능합니다.
함수 리터럴
방식은 다음과 같이 선언합니다.
const addNumber = function(num1, num2) {
return num1 + num2;
}
console.log("합계: " + addNumber(1, 2));
함수를 선언하고, 변수에 대입합니다. 이때 보면 함수에 이름이 따로 없이 바로 function(인자) {}
의 형태로 정의됩니다. 그래서 이러한 리터럴 방식을 함수에 이름이 없다고 하여 익명 함수라고 부릅니다.
처음 자바스크립트의 함수를 배운다면 충분히 헷갈릴 수 있는 내용이므로 두 가지를 비교해보겠습니다.
function 명령
은 정의할 때 함수명을 반드시 지어주어야합니다.
function 함수명(인자) {}
함수 리터럴(익명 함수)
는 정의할 때 함수명을 넣지 않습니다. 그리고 정의를 하며 보통 변수에 대입합니다.
const foo = function(인자) {}