함수란?
- 어떠한 기능(function)을 사용(실행)하는데 필요한 코드들의 집합.
함수 선언과 실행
- 함수의 선언은
function 함수이름() { 코드내용 };
으로 이루어진다.
- 함수의 실행(호출)은
함수이름();
으로 이루어지며, 위에서 지정한 코드내용
이 실행된다.
함수의 반환(return)
- 함수 내부에서
return
이라는 키워드를 사용하면 지정된 값을 반환 할 수 있는데, 반환된 값은 함수 외부로 이동되어 해당 함수가 그 값을 가진다.
- 이 경우 함수 자체가
return
된 값을 가지므로, 변수에 함수의 결과 값을 지정하거나, console.log();
등으로 함수의 값을 호출할 경우 return
의 값을 확인 할 수 있다.
function example() {
return "hello";
};
let print = example();
console.log(example());
console.log(print);
- 즉, 함수의 반환(return)을 이용하면 함수 내부의 값을 함수 자신의 값으로 돌려받을 수 있다고 생각하는 것이 이해하기 편하다.
매개변수(parameter)와 인수(argument)
- 매개변수와 인수를 사용하여 함수를 사용 할때 함수 안으로 데이터를 전달 해줄 수 있다.
- 매개변수(parameter)는 함수의 선언과정에서 작성하며, 외부로부터 데이터를 함수안으로 전달하는 매개체 역할을 한다.
- 인수(parameter)는 함수의 호출과정에서 사용하며, 함수에 전달되는 실질적인 데이터를 가진다.
function sum(a, b) {
return a+b;
};
console.log(sum(10, 15));
기명함수와 익명함수
- 우리가 일반적으로 함수선언으로 함수의 이름과 함께 선언한 함수를 기명함수라고 한다.
- 함수이름과 소괄호를 이용하여 호출 가능하다.
function 함수이름() { 함수 내용 };
함수이름()
- 이와 반대로 이름이 선언되지 않은 함수를 익명함수라고 한다.
- 함수에 이름이 없으므로 다른 요소들의 데이터로 사용될 수 있다.
- 함수가 데이터로 지정된 데이터의 이름(변수, 객체 등)의 뒤에 소괄호를 붙혀 호출한다.
let 변수이름 = function() { 함수내용 }
변수이름()
let 객체이름 = {
objectKey : function() { 함수내용 }
}
객체이름.objectKey()
let 배열이름 = [ function() { 함수내용 }, "문자데이터"]
배열이름[0]()
- 기명함수를 만드는 경우 함수선언이라고 하며, 익명함수를 작성하는 경우 함수표현 이라고 한다
객체 데이터에서의 익명함수
- 데이터로써 익명함수가 사용될때, 그 익명함수가 객체의 데이터 중 하나일 때 이를 메소드(method)라고 한다.
- 즉, 객체내부의 데이터가
key : value
의 형태로 저장되는데, value
에 익명함수가 값으로 존재하는 경우이다.
let introduce = {
name : "KROCK",
birth : "april",
hello : function() {
console.log(`Hello my name is ${this.name}`);
}
};
introduce.hello();
- 이때 함수를 포함한 key인
introduce.hello();
를 메소드(method)라고 한다.
- 함수가 포함되지 않은 key인
introduce.name
과 introduce.birth
를 프로퍼티(property) 라고 한다.
- 즉, 객체에 포함된 변수를 프로퍼티(property), 객체에 포함된 익명함수를 메소드(method) 라고 한다.