프로아마추어 2022. 4. 25. 00:01

 

1. 함수 개요

왜 함수를 사용할까?

  • 코드의 재사용 가능한 일부로서 함수를 호출하여 코드를 가져와 쓸 수 있다.
  • 코드의 중복을 줄이는데 유용하다.
  • 코드의 직관성을 높여준다.

함수의 필요성

// 아래 코드 4줄의 중복되는 부분이 너무 많다.
// 비효율적으로 반복되는 부분을 묶을 수 없을까?
let die1 = Math.floor(Math.random() * 6) + 1;
let die2 = Math.floor(Math.random() * 6) + 1;
let die3 = Math.floor(Math.random() * 12) + 1;
let die4 = Math.floor(Math.random() * 18) + 1;

 

2. 우리의 가장 첫 번째 함수

함수 사용하기

  1. 함수 선언
  2. 함수 호출
// 함수 선언하기
// function키워드 함수이름()
function funcName() {
	// do something
}

// 함수 이름은 자유롭게 작성 가능하며 두 단어 이상이 사용되면 낙타표기법으로 표기해준다.
function eatingMeal() {
	console.log('밥 먹는 중이에요');
}

// 함수 호출하기
// 함수이름() 
// 함수 호출 횟수에 제한이 없음을 알 수 있다.
eatingMeal(); // '밥 먹는 중이에요'
eatingMeal(); // '밥 먹는 중이에요'
eatingMeal(); // '밥 먹는 중이에요'

 

3. 인수 개요

  • 인수는 함수에 입력되는 값을 의미한다.
  • 매개변수 혹은 파라미터라고도 부른다.
// 인수가 있는 함수 정의하기
// function키워드 함수이름(인수)
function greet(name) {
	console.log(`안녕, ${name}!`);
}

greet('민수') // '안녕, 민수!'

 

4. 인수가 여러 개인 함수

// 예제 1
function greet(lastName, firstName) {
	console.log(`나의 성씨는 ${lastName}이고 이름은 ${firstName}이야 `);
}

greet('홍', '길동'); // '나의 성씨는 홍이고 이름은 길동이야'

// 예제 2
function repeat(str, count) {
	let sentence = '';
	while(count--) {
		sentence += str;
	}
	console.log(sentence);
} 

repeat('메롱', 3);  // '메롱메롱메롱'

 

5. return 키워드

return은 함수 호출부에서 함수의 결과 값을 받고 싶을 때 선언한다.

// return 키워드 사용하기
// function 함수이름() {
// 	return 반환할 값;
// }

function add(num1, num2) {
	// 두개의 인자 중에서 하나라도 숫자 타입이 아니면 false를 반환한다.
	if(typeof num1 !== 'number' || typeof num2 !== 'number') {
		// return 사용하기. return키워드 출력 값
		return false;
	}
	
	// 두 인자의 합을 반환한다.
	// 위의 false가 반환되면 함수가 종료되어 두 수의 합은 반환되지 않는다.
	return num1 + num2;
}

// 함수 호출 단에서 add의 결과 값을 받을 수 있다.
add(1, '2') // false 
add(1, 3) // 4 

// 함수의 반환 값을 변수에 담을 수 있다.
let total = add(add(5, 9), 6) // 20
total // 20