자바스크립트 기본 문법 – 함수 – 0 – 함수의 정의와 호출

자바스크립트 기본 문법 – 함수 – 1 – 매개변수와 인수

함수의 매개변수와 인수란?

함수는 자바스크립트에서 코드를 재사용하고 구조화하는 데에 매우 유용한 도구입니다. 함수를 정의할 때, 함수의 동작에 필요한 값을 받아들이는 매개변수(parameter)를 선언할 수 있습니다. 그리고 함수를 호출할 때 실제로 넘겨주는 값을 인수(argument)라고 합니다. 매개변수와 인수는 함수 내부에서 동일한 값을 사용하기 위해 연결되는 다리 역할을 합니다.

예를 들어, 다음과 같이 greet라는 함수를 정의하고 매개변수 name을 선언합니다.

function greet(name) {
  console.log("안녕하세요, " + name + "님!");
}

이 함수는 “안녕하세요, [name]님!”이라는 메시지를 출력하는 역할을 합니다. 여기서 name은 매개변수입니다. 함수를 호출할 때, 인수를 전달하여 name에 실제 값을 넘겨줍니다.

greet("영희");

위 예시에서 "영희"가 함수 호출 시 넘겨지는 인수입니다. 따라서 출력 결과는 “안녕하세요, 영희님!”이 됩니다.

비유를 통한 이해

매개변수와 인수의 개념을 비유를 통해 이해해보겠습니다. 상상해보세요, 여러분이 요리를 하려고 할 때, 레시피에 따라서 재료들을 사용하는데, 레시피에는 “당근”, “양파”, “감자”와 같은 매개변수가 있을 것입니다.

이때, 실제로 요리를 할 때는 레시피에 적힌 재료를 사용하는 것이 아니라, 직접 가게에 가서 당근, 양파, 감자와 같은 실제 재료들을 구매하여 가져와야 합니다. 이 실제 재료들이 함수 호출 시 넘겨주는 인수에 해당됩니다.

따라서, 매개변수는 레시피에 적힌 재료명이고, 인수는 그 재료들을 구매하여 실제로 사용하는 재료들이라고 할 수 있습니다.

예시

이제 실제 예시를 통해 매개변수와 인수를 자세히 살펴보겠습니다.

function multiply(a, b) {
  return a * b;
}

위의 예시는 multiply라는 함수를 정의하는 부분입니다. 이 함수는 두 개의 매개변수 ab를 받아들여서 곱셈 연산을 수행하고, 그 결과를 반환합니다.

이제 함수를 호출할 때, 인수를 전달해보겠습니다.

var result = multiply(5, 3);
console.log(result);

위의 예시에서 multiply(5, 3)은 함수 호출의 형태입니다. 여기서 5와 3은 함수에 전달되는 인수입니다. 이렇게 함수를 호출하면, 매개변수 a에는 5가, b에는 3이 할당됩니다.

함수 내부에서 ab를 곱한 결과인 15가 반환되고, 이 결과가 변수 result에 저장됩니다. 마지막으로 result를 출력하면 15가 화면에 출력됩니다.

주의해야 할 점

  • 함수를 호출할 때, 인수의 개수와 매개변수의 개수가 일치해야 합니다. 예를 들어, 함수의 매개변수가 두 개인 경우, 함수 호출 시에도 두 개의 인수를 넘겨주어야 합니다.

  • 매개변수는 함수 내부에서만 사용되는 변수입니다. 함수 외부에서는 매개변수에 접근할 수 없습니다. 따라서, 매개변수의 이름은 함수 내에서만 유효한 범위(scope)를 가집니다.

  • 함수 정의 시에 선언한 매개변수의 이름은 함수 내부에서만 사용되는 변수명이므로, 함수 외부에서 동일한 이름의 변수를 사용해도 충돌하지 않습니다.

  • 인수는 함수 호출 시에 사용되는 값으로, 함수 호출마다 다른 값을 전달할 수 있습니다. 따라서, 함수를 여러 번 호출하면서 다양한 인수를 전달하여 함수의 동작을 다양화할 수 있습니다.

  • 매개변수와 인수는 함수 호출 시에 순서대로 대응되어야 합니다. 즉, 첫 번째 인수가 첫 번째 매개변수에, 두 번째 인수가 두 번째 매개변수에 대응되는 식으로 매칭됩니다.

  • 매개변수는 함수 내부에서 변수처럼 사용되므로, 함수 내부에서 값을 변경할 수 있습니다. 이는 함수 외부의 변수에는 영향을 주지 않습니다. 이러한 독립성을 유지하여 함수의 재사용성을 높이는 것이 좋습니다.

  • 매개변수의 이름은 함수 내부에서만 유효한 범위를 가지므로, 함수 외부에서 동일한 이름의 변수를 사용해도 충돌하지 않습니다. 하지만, 코드의 가독성을 위해 매개변수의 이름은 함수 내부에서만 사용되도록 신경쓰는 것이 좋습니다.

  • 매개변수와 인수의 개수와 타입이 일치하는지 항상 확인해야 합니다. 잘못된 매개변수와 인수의 사용은 원하지 않는 결과를 초래할 수 있습니다. 따라서, 함수를 정의할 때 예상되는 매개변수의 타입과 개수를 정확하게 파악하고, 함수를 호출할 때에도 이를 준수해야 합니다.

자바스크립트에서 함수의 매개변수와 인수를 이해하는 것은 함수를 효과적으로 사용하는 핵심입니다. 이를 통해 재사용 가능한 코드를 작성하고, 유지 보수성을 향상시킬 수 있습니다. 매개변수와 인수를 올바르게 다루어 다양한 상황에서 유연한 함수를 작성해보세요!

답글 남기기