함수(Function)

프로그래밍에서 함수는 수학시간에 배우는 함수와 비슷합니다.

들어가는 값이 2가 곱해지고 4가 더해진 후 나오는 함수를 나타낸 그림으로, 수식으로 표현하면 2x+8=y(x가 들어가는 값, y가 나오는 값)가 됩니다. 들어가는 수와 결과값은 달라질 수 있지만 그 과정은 항상 일정하죠.

마찬가지로 프로그래밍에서의 함수도 같은 과정을 반복 수행하기 위한 용도로 사용됩니다. 반복적으로 사용되는 코드를 함수로 만든 후, 해당 과정이 필요할 때 함수를 호출하면 같은 코드를 여러번 작성 할 필요도 없고, 변수처럼 함수도 이름을 지어 줄 수 있으므로 해당 함수가 무슨 일을 하는지 나타내기가 쉬워 코드의 가독성을 높일 수도 있습니다.

함수의 선언

function 함수_이름(입력값_이름, 입력값2_이름){
  함수_내용
  return 출력값;
}

의 형식으로 자바스크립트 함수를 만들 수 있습니다.

- function은 함수의 선언을 나타내는 예약어입니다.
- 함수 이름을 짓는 규칙은 변수 이름을 짓는 규칙과 같습니다.
- 함수 이름 뒤 ()에 입력값 이름들을 나열합니다. 입력값 이름을 짓는 규칙 역시 변수 이름을 짓는 규칙과 같습니다.
- 입력값 이름은 해당 위치에 입력된 값을 함수 내용안에서 사용하기 위해 사용됩니다.
- 입력값은 파라메터(parameter) 혹은 함수 인자로 불립니다.
- 함수의 파라메터는 없을 수도 있고, 하나일 수도 있고 여러개일 수도 있습니다.
- 대괄호{ }안에 함수 실행시 할 일을 코드로 작성합니다.
- return은 함수를 종료하고 함수가 어떤 값을 출력할지를 나타내는 예약어입니다.
- return은 없을 수도 있습니다. 이 경우 함수는 항상 { }안의 코드를 모두 실행하고 undefined를 return하게 됩니다. 이 부분은 뒤에 다시 설명하겠습니다.

처음에 본 그림의 수식을 함수로 작성해 봅시다.

function myFunction(x){ var y = x*2+8; return y; }

첫번째 줄을 보면

- 함수의 이름은 myFunction이고,
- 1개의 값을 입력받으며,
- 그 입력값은 x라는 이름으로 함수 코드에서 사용되는 것

을 알 수 있습니다.

{}안의 함수 내용을 살펴봅시다. 입력된 값 x에 2를 곱하고 8을 더해 y라는 변수에 저장하고, 이 y를 최종적으로 return합니다.

웹브라우저 콘솔을 열고(콘솔 여는 법 링크) 위 코드를 입력하여 함수를 만들어 봅시다.

이 함수는 내용이 간단하기 때문에 함수의 필요성을 잘 못느낄 수도 있지만, 함수가 없는 프로그램은 존재하지 않을 정도로 함수는 프로그램의 기본이며 굉장히 중요합니다.

함수의 호출

함수_이름(입력값, 입력값2);

의 형식으로 함수를 실행할 수 있습니다. 함수의 실행은 미리 저장된 코드를 불러오는 것이므로 '함수를 호출한다'고 표현합니다.

위에서 만든 myFunction함수에 12라는 값을 넣어 함수를 호출해 봅시다.

함수안의 코드가 실행되어 32가 출력되었습니다.

출력값(return)이 없는 함수

수학의 함수를 생각하면 출력값이 없는 함수는 필요 없을 것같지만, 프로그래밍의 함수는 지정된 코드의 반복이라는 점에서 출력값이 없어도 의미가 있습니다.

아래 함수를 살펴봅시다.

function greeting(name){
  console.log("Hello "+name);
}

이 함수는 실행을 하면 아무런 값을 return하지 않지만 콘솔에 문자를 출력하는 작업을 합니다.

+ 연산자는 숫자 사이에 사용되면 수학적 덧셈을 하지만, 문자열 사이에 사용되면 두개의 문자열을 하나로 합쳐 하나의 문자열로 만들어 줍니다.

정리 및 요약

  • 함수(Function): 같은 코드을 반복 수행하기 위한 용도로 사용. 코드의 반복을 줄이고 함수 이름을 통해 가독성을 높일 수 있음
  • function은 함수의 선언을 나타내는 예약어
  • 파라메터(parameter), 함수 인자: 함수에 전달 되는 값을 뜻함
  • 함수 이름, 파라메터 이름을 짓는 규칙은 변수 이름을 짓는 규칙과 같음
  • return: 함수를 종료하고 함수가 어떤 값을 출력할지를 나타내는 예약어
  • 함수에서 return은 없을 수도 있음. 이 경우 함수는 항상 undefined를 return
  • 함수의 실행은 미리 저장된 코드를 불러오는 것이므로 '함수를 호출한다'고 표현
  • + 연산자는 숫자 사이에 사용되면 수학적 덧셈을 하지만, 문자열 사이에 사용되면 두개의 문자열을 하나로 합쳐 하나의 문자열로 만듦


+ Recent posts