JUST GO
[공통] 사용자 함수 본문
사용자 함수
- (사용자) 함수(Function)는 주로 특정 기능이나 반복되는 로직을 분리하기 위해 사용한다.
- 반환(return) : 반환은 어떠한 함수를 호출하여 해당 함수가 되는 값을 반환하기 위해 사용한다.
'return 반환값;' 형식으로 사용한다.
- 함수는 호출(Call)하지 않으면 그 구현부가 가지는 내용이 실행되지 않는다.
- 일반 함수
- 일반 함수는 호이스팅(Hoisting)이 발생한다. 호이스팅은 JS파일 다운로드 완료 후 실행 전에 존재하는 모든 함수를 파악하는 기능이다. 고로, 선언 전 호출이 가능하다.
function 함수_이름(매개변수) {
// 함수 구현부
}
- 가령, 전달 받은 전달 인자 a와 b의 합을 반환하는 함수 sum는 아래와 같이 만든다.
function sum(a, b) {
return a + b;
}
일반 익명(Anonymous) 함수 : 이름이 없는 함수이다.
- 익명 함수는 전달 인자로 전달되거나 어떠한 변수/상수의 값으로 사용되지 않으면 존재할 수 없다.
- 변수 선언을 통한 익명 함수 대입은 호이스팅이 발생하지 않음으로 선언 전 호출이 불가능하다.
function (매개 변수,...) {
// 함수 구현부
}
let f = function (매개 변수,...) {
// 함수 구현부
}
화살표 함수(Arrow Function)
- 하는 일은 일반 함수랑 같음.
- 화살표 함수가 가지는 구현부의 구문이 한 개이고, 이가 반환 구문이라면 중괄호와 return 키워드를 생략할 수 있다.
(매개 변수) => {
// 구현부
}
let 변수이름 = (매개 변수) => {
// 함수 구현부
}
일반 함수와 화살표 함수
let f = function(a,b,c) {
return a + b + c;
}
let f = (a, b, c) => {
return a + b + c;
}
let f = (a, b, c) => a + b + c;
위 방식 모두 같다.
반환(Return) : 반환은 함수가 실행됨에 따라 반환할 값 혹은 이를 반환하는 것 그 자체이다. 단, return 시, 그 즉시 해당 함수의 실행이 중단됨으로 유의한다.
- 반환 값이 있는 경우 return 반환값 형태로 작성한다.
- 반환 값이 없는 경우(함수 호출을 중단하려는 경우) return 만 적는다.
let someFunc = () > {
console.log('첫번째 줄');
return;
console.log('두번째 줄'); / 실행되지 않음
};
기본값 매개변수(Default Parameter)
- 함수 정의시 어떠한 매개변수에 전달 인자가 전달되지 않았을 경우 사용할 기본 값을 지정할 수 있다.
- (매개변수 이름 = 기본 값 ,...) 방식으로 구현할 수 있다.
- 자세한 용법은 '2022-09-19 함수만들기' 과제 참고.
let sum = (a = 0, b = 0, c = 0) > a + b + c;
sum(1, 3); / 4
전개 구문(Spread Operator)
- 전개 구문은 그 개수가 정해지지 않은 어떠한 전달 인자를 받기 위한 매개 변수 구조로, 쉼표(,)로 구분된 값의 나열을 배열(Array)로 받을 수 있다.
let sum = (...nums) => {
nums.forEach(num => console.log(num));
}