JavaScript 함수 선언과 호출을 이해하는 완벽 가이드
JavaScript에서 함수는 필수적인 개념으로, 코드의 재사용성과 가독성을 높이는 데 중요한 역할을 합니다. 이 글에서는 JavaScript 함수의 선언, 호출 방법 및 다양한 활용 사례에 대해 자세히 알아보겠습니다. 기본적인 함수부터 고급 사용법까지 폭넓은 기초 지식을 제공해 드리겠습니다.

JavaScript 함수란 무엇인가요?
JavaScript에서 함수는 특정 작업을 수행하는 코드 블록입니다. 이러한 함수는 재사용이 가능하여, 같은 코드를 여러 번 작성하지 않고도 여러 번 호출할 수 있습니다. 함수는 인자를 전달받아 처리하고, 그 결과를 반환할 수 있습니다.
함수 선언하기
함수를 선언하는 방법은 여러 가지가 있습니다. 여기서 가장 일반적인 방법 두 가지를 소개하겠습니다.
1. 함수 선언문
가장 전통적인 방법으로, 다음과 같이 작성합니다:
function myFunction(parameter1, parameter2) {
// 수행할 작업
return parameter1 + parameter2; // 결과 반환
}
위 코드에서 myFunction
이라는 이름의 함수를 선언하였고, 두 개의 매개변수를 받아 그 합을 반환합니다.
2. 함수 표현식
함수 표현식은 변수에 함수를 할당하는 방법입니다:
const myFunction = function(parameter1, parameter2) {
return parameter1 + parameter2;
};
이 방법은 익명 함수 형태로도 작성할 수 있습니다. 함수에 이름을 명시하지 않으면 나중에 호출할 수 없습니다.
함수 호출하기
함수를 호출하려면 함수명 뒤에 괄호를 추가합니다. 다음은 간단한 예시입니다:
let result = myFunction(3, 5);
console.log(result); // 8
위 예제에서 myFunction
을 호출하여 3과 5를 인자로 전달하고, 그 결과는 result
변수에 저장됩니다.

화살표 함수 사용법
ES6 이후 도입된 화살표 함수는 짧고 간결한 문법으로 주목받고 있습니다. 화살표 함수는 다음과 같은 형태로 작성됩니다:
const add = (a, b) => a + b;
이렇게 작성된 화살표 함수는 인자로 넘긴 두 값을 더하여 결과를 반환합니다. 화살표 함수는 특히 콜백 함수에서 유용하게 사용됩니다.
함수의 매개변수와 인자
함수는 매개변수를 통해 외부에서 값을 받아올 수 있습니다. 매개변수는 함수 선언 시 정의되며, 함수 호출 시 인자로 값을 전달할 수 있습니다. 예를 들어:
function greet(name) {
return Hello, ${name}!;
}
console.log(greet("Alice")); // Hello, Alice!
기본값 매개변수
함수의 매개변수에 기본값을 설정할 수도 있습니다. 매개변수에 값이 전달되지 않았을 때 기본값이 사용됩니다:
function greet(name = "Guest") {
return Hello, ${name}!;
}
console.log(greet()); // Hello, Guest!
가변 인자
JavaScript에서는 ‘arguments’ 객체를 사용해 가변 개수의 인자를 받을 수 있습니다. 또는 전개 연산자(…)를 사용하여 배열로 받을 수도 있습니다:
function sum(...numbers) {
return numbers.reduce((acc, curr) => acc + curr, 0);
}
console.log(sum(1, 2, 3, 4)); // 10
함수의 반환값
함수는 ‘return’ 키워드를 통해 값을 반환합니다. 반환된 값은 함수 호출 시 사용할 수 있습니다. 반환값이 명시되지 않은 경우, undefined가 반환됩니다.
콜백 함수와 고차 함수
JavaScript에서 함수는 일급 객체로, 다른 함수의 인자로 전달되거나 반환될 수 있습니다. 이러한 함수는 “콜백 함수” 또는 “고차 함수”로 알려져 있습니다. 고차 함수를 생성하는 예는 다음과 같습니다:
function higherOrderFunction(callback) {
console.log("Running the callback...");
callback();
}
higherOrderFunction(() => console.log("Callback executed!"));
함수 스코프
함수에는 ‘스코프’라는 개념이 있습니다. 함수 내부에서 선언된 변수는 그 함수 내부에서만 접근이 가능하며, 외부에서는 접근할 수 없습니다. 이를 통해 이름 충돌을 피할 수 있습니다.
즉시 실행 함수 표현식(IIFE)
즉시 실행 함수 표현식(IIFE)은 정의되자마자 실행되도록 설계된 함수입니다. 주로 변수를 필드 스코프에 숨기고 싶을 때 유용합니다:
(function() {
console.log("I am an IIFE!");
})();

결론
JavaScript에서 함수의 선언과 호출은 매우 중요한 개념입니다. 이 글에서는 다양한 함수 유형, 매개변수, 인자 처리 방법, 그리고 함수의 활용법에 대해 알아보았습니다. 이러한 기초 지식을 바탕으로 JavaScript 프로그래밍에서 더 높은 수준의 활용을 기대할 수 있을 것입니다.
- 함수 선언 방법 이해하기
- 함수 호출 및 반환값 다루기
- 고차 함수 및 콜백 함수의 중요성
- 스코프 개념과 즉시 실행 함수 활용하기
JavaScript의 함수 개념을 잘 이해하고 활용하여 더욱 효율적이고 가독성 높은 코드를 작성해 보시기 바랍니다.
자주 물으시는 질문
JavaScript 함수란 무엇인가요?
JavaScript 함수는 특정 작업을 수행할 수 있는 코드 블록입니다. 이러한 함수는 재사용이 가능하여, 효율적으로 코드를 관리할 수 있게 해줍니다.
함수를 어떻게 선언하고 호출하나요?
함수는 ‘function’ 키워드로 선언할 수 있으며, 호출은 함수 이름 뒤에 괄호를 붙여서 수행합니다. 예를 들어, myFunction()과 같이 사용할 수 있습니다.
화살표 함수는 무엇인가요?
화살표 함수는 ES6에서 도입된 간결한 함수 표현법입니다. 이 구문은 짧은 코드를 작성할 수 있게 해주며, 특히 콜백 함수로 사용될 때 유용합니다.