함수는 코드의 집합을 나타내는 자료형이며, 기본 형태는 다음과 같다.
function() {}
함수를 사용함으로써 생기는 장점
함수는 코드의 집합이며, 이름이 붙어있지 않은 함수를 익명 함수라고 부른다.
function () {}
다음과 같은 방식으로 생성한 함수를 선언적 함수라 한다.
함수를 호출(실행) 할 때 괄호 안에 적는 것들을 매개변수라고 한다. 또한 함수의 최종 결과를 리턴값이라고 부른다.
function 함수(매개변수, 매개변수) {
문장
문장
return 리턴값
}
호출할 때 매개변수의 개수가 고정적이지 않은 매개변수를 가변 매개변수 함수라고 부른다. 자바스크립트에서 이러한 함수를 구현할 때는 남머지 매개변수라는 트깅한 형태의 문법을 사용한다. 문법은 다음과 같다.
function 함수 이름(... 나머지 매개변수)
예시)
function sample(...items) {
console.log(items);
}
sample(1,2)
sample(1,2,3,4)
함수의 매개변수 앞에 마침표 3개를 입력하면 매개변수들이 배열로 들어온다.
function sample(a,b, ...c) {
console.log(a,b,c) // c가 배열로 들어온다...!
}
다음과 같이 나머지 매개변수와 일반 매개변수를 조합해서 사용할 수 있다.
함수 이름(매개변수, 매개변수=기본값, 매개변수=기본값)
위 코드와 같이 매개변수에 기본값을 지정할 수 있다.
function IntroduceMyself(name,age,country='kor')
{
...... // country 매개변수의 기본값이 kor로 설정된다.
}
자바스크립트는 함수도 하나의 자료형이므로 매개변수로 전달할 수 있다. 이렇게 매개변수로 전달되는 함수를 콜백 함수라고 한다.
function callThreeTimes(callback) {
for(let i = 0; i <3; i++) {
callback(i);
}
}
function print(i) {
console.log(`${i}번째 함수 호출`);
}
위 코드에서 print 함수가 콜백함수로 callThreeTimes 함수의 매개변수로 전달되고 있다.
단순한 형태의 콜백 함수를 쉽게 입력할 때 화살표 함수를 사용할 수 있다.
(매개변수) => 리턴값
const arr = [1,2,3];
arr.map((n) => n * n);
**map 메소드의 콜백 함수로 배열의 인자를 제곱해서 리턴하는 화살표 함수를 넣어주었다.