함수의 기본형태

함수를 왜 사용하는가?

익명함수 Anonymous Function

함수에 이름이 붙어있지 않은 함수

// 익명 함수 선언하기

const func = function () {
	console.log('함수 내부의 코드입니다. 그 첫번째');
	console.log('함수 내부의 코드입니다. 그 두번째');
	console.log('함수 내부의 코드입니다. 그 세번째');
	console.log(' ');
}

func(); // 함수 호출
// 함수 호출시 콘솔창에 출력되는 결과
/*
	함수 내부의 코드입니다. 그 첫번째
	함수 내부의 코드입니다. 그 두번째
	함수 내부의 코드입니다. 그 세번째
*/

console.log(tyepof func); // function
													// 함수의 자료형은 function 이다
console.log(func);        // 함수 자체도 일종의 자료이므로 출력가능

//함수 출력시 결과
/*
f () {
	console.log('함수 내부의 코드입니다. 그 첫번째');
	console.log('함수 내부의 코드입니다. 그 두번째');
	console.log('함수 내부의 코드입니다. 그 세번째');
	console.log(' ');
}
*/

선언적 함수

이름이 있는 함수

// 익명 함수 선언하기

function func () {
	console.log('함수 내부의 코드입니다. 그 첫번째');
	console.log('함수 내부의 코드입니다. 그 두번째');
	console.log('함수 내부의 코드입니다. 그 세번째');
	console.log(' ');
}

func();

//함수 출력시 결과
/*
f func () {      // func라는 함수 이름이 출력된다
	console.log('함수 내부의 코드입니다. 그 첫번째');
	console.log('함수 내부의 코드입니다. 그 두번째');
	console.log('함수 내부의 코드입니다. 그 세번째');
	console.log(' ');
}
*/

연습문제

나머지 매개변수 rest parameter

매개변수의 개수가 여러개일 때, 개수가 고정이지 않을때 이 함수를 가변 매개변수 함수 라고 한다

이러한 함수를 구현할 때 나머지 매개변수를 사용한다 함수의 매개변수 앞에 ... 을 입력하면 매개변수들이 배열로 들어온다.

function sample(...items){
	console.log(items);
}

sample(1,2);
sample(1,2,3);
sample(1,2,3,4);

// 실행결과
/*
	Array(2);
	Array(3);
	Array(4);
*/

배열이 아닌 일반 매개변수와도 함께 쓸 수 있다

function sample(a,b,...c){
	console.log(a,b,c);
}

sample(1,2);
sample(1,2,3);
sample(1,2,3,4);

//실행결과
/*
	1 2 []
	1 2 [3]
	1 2 [3,4]
*/

// 매개변수 a,b로 들어오는 인자는 원래대로 들어오고 매개변수 c로 들어오는 인자는 배열로 들어온다

매개변수로 들어온 자료형이 배열인지 숫자,문자열 등인지 구분할 수 있어야한다 typeof 연산자로 기본 자료형(number,string,boolean 등)은 알 수 있지만 배열은 object라고 알려주므로 확실히 배열인지 확인하려면 Array.isArray() 메소드를 사용해야한다

전개 연산자

배열을 함수의 매개변수로써 전개하고 싶을때 사용

함수 이름(…배열)

function sample(...items) {
    console.log(items)
}

// 전개 연산자 사용 여부 비교하기
const array = [1, 2, 3, 4]

console.log('# 전개 연산자를 사용하지 않은 경우')
sample(array)
// 실행 결과
/*
[Array(4)]  --> 4개 요소가 있는 배열 출력
*/

console.log('# 전개 연산자를 사용한 경우')
sample(...array)
// 실행 결과
/*
[1, 2, 3, 4]  --> 숫자 하나하나가 전개된 배열이 출력
*/

기본 매개변수

비슷한 값을 반복적으로 매개변수로 입력해야하는 경우 아래 예시처럼 매개변수의 기본값을 설정할 수 있다

function sample(a=기본값, b) {}