(이미지 출처 : https://blog.naver.com/min8064/222132908463)
프로그래밍의 세계에서 함수(Function)는 특정한 기능을 수행하기 위해서 만들어진 코드의 집합이라고 볼 수 있다. 함수의 구성요소는 1) input 받기 2) 기능수행 3) output 반환 등 3가지로 나눌 수 있다. 여기서 2) 기능수행 부분은 함수를 사용할 때 필수적이지만 1) input 받기, 3) output 반환은 필요에 따라서는 없어도 함수를 사용할 수 있다.
함수를 사용하기 위해서는 먼저 함수를 정의해야하는데, function을 쓴 후에 함수의 이름을 지어주고 input이 들어갈 공간인 ( ) 을 써준 후 중괄호{ } 안에 함수의 내용을 만들어주면 된다.
function sayHello() { //함수의 정의 혹은 선언
console.log("안녕하세요! 만나서 반갑습니다!");
}
위의 예시는 함수의 구성요소 중 2) 기능수행 부분만을 사용하여 만들어져있다.
함수를 정의한다는 것은 이러한 기능을 해주는 함수가 있다는 것을 컴퓨터에 알려준 것 뿐이이고, 그것이 실행된다는 의미는 아니다. 함수를 동작하게 만들기 위해서는 함수를 호출해줘야 한다.
sayHello(); // 함수의 호출 혹은 실행
함수를 호출하기 위해서는 함수의 이름을 써준 후에 ( )를 붙여주기만 하면 된다. 그러면 함수가 실행되고 위 예시의 함수의 내용에 맞게 콘솔창에 "안녕하세요! 만나서 반갑습니다!"가 출력될 것이다.
함수에서 output을 반환받고 싶다면 return이라는 명령어를 쓰고 그 뒤에 반환받고 싶은 것을 적어주면 된다.
function sayMyName() { // 함수의 정의
let name = "김코딩";
return name; // return뒤에 반환받고 싶은 변수 name을 써줌
}
sayMyName(); // 함수의 호출
함수 sayMyName을 선언하고 name이라는 변수를 output으로 반환받은 것을 알 수 있다. 그리고 함수를 호출해주면서 sayMyName( )에는 변수 name이 저장되어있는 상태가 된다. 여기서 착각하기 쉬운 점은 함수를 호출했다고 해서 바로 우리 눈으로 확인할 수는 없다는 것이다. 직접 눈으로 변수 name이 반환됬는지 알고 싶으면 console.log를 통해 콘솔창에서 확인해야한다.
앞서 언급한 것처럼 함수의 이름 뒤에는 input이 들어갈 공간인 ( )이 존재한다. 함수를 선언할 때 이 공간에 넣는 값을 parameter(매개변수)라고 하고, 함수를 호출할 때 넣는 값은 argument(전달인자)라고 부른다.
function sayGoodbye(name) { // 여기서 name은 parameter
return "Goodbye, " + name + "!";
}
sayGoodbye("my friend"); // "Goodbye, my friend!"
sayGoodbye("my teacher"); // "Goodbye, my teacher!"
// 여기서 "my friend"와 "my teacher"는 argument
여기서 확인할 수 있는 것은 함수에 input으로 서로 다른 데이터를 제공하면 반환되는 output도 달라진다는 것이다.
함수를 선언할 때 parameter를 여러 개 넣을 수도 있다.
function addTwoNumbers(num1, num2) { // parameter가 num1, num2로 2개
let result = num1 + num2
return result;
}
addTwoNumbers(1, 2) // 3
addTwoNumbers(5, 14) // 19