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

자바스크립트에서 인수(argument)와 매개변수(parameter)의 차이점은 무엇일까?

자바스크립트에서 인수(argument)와 매개변수(parameter)의 차이가 무엇인지, 그리고 두 용어를 구분해 사용하는 것이 실제로 중요한지 알아봅니다.

자바스크립트의 인수(argument)와 매개변수(parameter)란?

자바스크립트에서 함수를 실행할 때는 함수를 호출하는 시점에 특정 정보를 함수에 전달할 수 있습니다.

이렇게 전달되는 정보를 '인수(argument)' 또는 '매개변수(parameter)'라고 부르는데, 대부분의 개발자는 사실상 이 두 용어를 혼용해서 사용합니다.

예시를 살펴보겠습니다:

function greetings(name) {
	console.log(name)
}

greetings('Anna') 

여기서 'Anna' 부분이 바로 greetings() 함수가 호출될 때 전달되는 값입니다.

그렇다면 이것은 인수일까요, 아니면 매개변수일까요?

리액트 코어 팀 출신 개발자 Dan Abramov는 자바스크립트에서 인수와 매개변수의 관계에 대해 다음과 같이 설명합니다:

함수 정의 쪽을 보느냐, 함수 호출 쪽을 보느냐에 따라 'arguments(인수)' 또는 'parameters(매개변수)'라고 부릅니다. 다만 이러한 용어 구분은 지나치게 학문적인 것이며, 실제로는 두 용어가 혼용되어 사용됩니다.

출처

다시 말해, 커뮤니케이션의 관점에서라면 두 용어를 언제 사용해야 하는지 분명한 차이가 존재합니다:

  • 매개변수(Parameter): 함수 정부 내부에서 전달받는 값을 가리킵니다.
  • 인수(Argument): 함수를 호출할 때 실제로 전달되는 값을 가리킵니다.

따라서 위 예시를 교과서적으로 정확한 용어로 표현하면 다음과 같습니다:

  • 우리는 함수에 인수(argument)Anna를 전달하고 있습니다.
  • function greetings(name) 안의 name 부분이 바로 매개변수(parameter)입니다.

하지만 올바른 순간에 정확한 용어를 사용한다고 해서 코드 실행이나 이해에 아무런 영향을 주지는 않습니다.

개발 과정에서 걱정거리가 얼마나 많은데 굳이 이것까지 신경 쓸 필요는 없습니다. 단, 좋은 코드를 작성하는 능력보다 이런 용어 구분을 훨씬 중요하게 여기는 면접관을 만난다면 이야기가 달라지겠죠.