TIL | Function 매개변수, 인자

이 함수 부분을 이해함에 있어 나에게 가장 큰 고난을 안겨준 부분이다.

지나고나서 봐도 이해가 완벽히 되었다고는 못하겠지만,

그렇게까지 어려워했어야했나 싶은 부분이다.

매개변수와 인자

우선 매개변수란 함수를 정의할때 함수 선언식의 () 안에 어떤 변수명을 쓰면 그게 매개 변수다

function Name(myName){
  위의 소괄호 안에있는 'myName'이 매개 변수이다.
}

인자란? 사실 나는 이부분이 제일 이해가 가지않았다. 뭐가 그렇게도 이해가 가지않을까

인자란 어떤 함수를 호출하면서, 호출문의 괄호 안에 어떤 값 또는 값이 정의된 변수를 쓰면

그것을 인자 라고 부른다.

예를 들어

function Name(myName){
  let realmyName = myName * 2 
  
}

라고 한다면 함수를 호출할 때 괄호안에 전달받은 값을 myName 에 대입하고,

그 안에 함수를 통과 시켜 도출되는 값을 보여주겠다 라는것이다.

그리고 '함수를 호출할 때 괄호안에 전달받은 값을 myName 에 대입하고' 바아아로 이 부분!!

우리가 실제로 함수를 호출할 때 괄호안에 쓰는 값을 '인자' 라고 하는것이다.

나를 엄청나게 고통받게 했던 문제를 살펴보자

  1. 함수를 선언하고 구현하라
function halfNumber(){
}

  1. 숫자로 된 인자 하나를 받는다
    바아로 이부분이 나를 정말 힘들게 했다 '숫자로된인자를 받는다' 그냥 호출할 때 숫자 넣을테니까 전달받는 값을 대신해서 함수를 진행해 줄 매개변수를 임의로 적어준다.
function halfNumber(num){
}
  1. 받은값을 2로 나눈 결과를 리턴한다. 인자로는 숫자가 들어올테니 매개변수로 지정한 놈을 2로 나눠 리턴을 시키면 된다.
function halfNumber(num){
	let Num = num/2
    return Num;
}

여기선 return = num/2 로 해줘도 큰 지장은 없지만 저 값을 다시 사용할 가능성이 있기때문에 다른 변수에 지정해줘서 그 변수를 리턴시킨다.

됐다. Done. 다음문제.

1번 문제와 연관되는 문제다 여기서 매개변수는 겹치면 안된다. 따라서....

1.함수를 선언하고 구현해라

function halfAndAddNumber(Addnum){
  
}

1번 문제와 값이 겹치면 안되기때문에 매개변수는 다른이름으로 줬다. 하기사 원래 변수를 지정할 땐 변수이름은 안겹치는게 정답이긴하다.

  1. 1번에서의 함수를 호출하면서 인자로 받았던겂을 다시 halfNumber에 전달해준다.
function halfAndAddNumber(Addnum){
  	 halfNumber(Addnum)
 }
  1. halfNumber의 리턴 결과를 함수 안쪽에서 변수명 result에 정의해라.

뭔소린진 몰라도 일단 result란 변수에 무엇인가 정의 해야하는 것 같다.

문제를 아주 천천히 다시 읽어보면 밑의 코드가 이해가 된다.

function halfAndAddNumber(Addnum){
  	let result = halfNumber(Addnum)
 }
  1. result + 1 의 값을 리턴해라
function halfAndAddNumber(Addnum){
  	let result = halfNumber(Addnum)
   return result+1
 }

끝 완성 Done.

진작에 정리글을 쓸걸 그랬다 적으면서 보니까 이해 안될게 없다.

좋은 웹페이지 즐겨찾기