Home JavaScript - 함수 Parameter vs Argument
Post
Cancel

JavaScript - 함수 Parameter vs Argument

함수의 목적은 ’재사용’ 이다. 아주 간단한 sum() 함수를 살펴보자.

1
2
3
4
5
6
7
8
function sum(x, y){
    return x + y
}

console.log(sum(1,2))    //3
console.log(sum(2,4))    //6
console.log(sum(4,6))    //10
console.log(sum(10,20))  //30

 이 함수를 통해서 계산(합산)하고자 하는 데이터를 얼마든지 입력하고 그 결과를 반환받을 수 있다. 좀 더 복잡한 함수를 생각해보자. 

1
2
3
4
5
6
7
8
function impulse(x,y,z){
  return ((x+y)-z)*x*y*z
}
  
console.log(impulse(3,2,1))             //24
console.log(impulse(6,5,4))             //840
console.log(impulse(30,20,10))          //240000
console.log(impulse(9999999,8888,777))  //691157605537832500000

세 물체의 무게(x, y, z)에 따른 충격량의 총합을 계산해주는(말도 안되지만 그렇다치자) complex() 함수가 있다고 가정해보자. 우리는 impulse(역학-충격량) 라는 함수 명을 통해 이것이 충격량을 계산해주는 식이라는 것을 예상할 수 있다. 그리고 함수 내부적으로 어떻게 동작하는지, 굳이 난해한(말도 안되는) 수학을 이해하지 않고도 함수를 사용해 값을 얻어낼 수 있게 된다.

함수의 재사용성이다. 함수를 한 번 만들어 놓으면 100만 번이든 100억 번이든 얼마든지 쓰고 또 쓸 수 있다.

parameter(매개변수)와 argument(전달 인자)가 무엇인지 그리고 어떻게 다른지 알아보겠다. 함수의 재사용성을 이해했다면 두 개념 역시 쉽게 이해할 수 있다.

앞에서 sum()이라는 함수에 x, y라는 미지수가 들어있었다. 그리고 이 함수는 x + y를 return 했다. 함수가 받아내는 x와 y는 변할 수 있는 값”이라는 뜻의 ‘변수’이며 ‘함수를 매개로 입력 값을 전달하는 변수’라는 의미에서 ‘매개변수’(parameter)라고 한다. 반대로 전달 인자는 이 매개변수를 통해 함수 내부로 전달하고자 하는 인자를 뜻한다. 즉, 입력할 ‘값’이다.

1
2
3
4
5
6
7
sum(1,2)
sum(2,4)
sum(4,6)

impulse(50,40,4)
impulse(200,20,2)
impulse(1000,100,200)

위 함수 괄호() 안에 들어 있는 숫자(여기서는 숫자지만 문자가 올 수도 있다.)는 모두 ‘전달 인자’(argument)라고 부른다.

함수를 만들 때매개변수를 작성해주고, 추후 함수를 이용하고자 할 때전달 인자를 입력해준다.

관성을 이기는 데이터

This post is licensed under CC BY 4.0 by the author.

Trending Tags