- 함수: 특정한 작업을 수행하는 코드
- 익명함수: 이름이 없는 함수
- 함수 선언문: 함수 키워드를 사용하여 함수를 선언한 문장
- 함수 표현식: 함수를 상수나 변수에 대입하는 방식
- 화살표함수: 화살표 기호를 사용하는 함수
- 함수 호출하기: 함수를 사용하는 행위
#1 함수 선언하기
함수를 선언할 때 이름도 같이 지어야 다른 곳에서 사용할 수 있다.
function a() {} // 함수선언문
const b = function () {}; // 함수표현식
const c = () => {}; // 함수표현식, 화살표함수
#2 함수 호출하기
함수 호출이란 함수를 사용하는 행위다. 함수의 몸체의 실행문들이 실행된다.
function a(){
console.log();
console.log();
console.log();
}
a(); // 세줄 생김
#3 반환값
- 함수의 반환값
- 변수나 상수에 함수의 반환값 대입
- return문의 역할: 실행 중단
함수를 호출할 경우에 반드시 반환값을 반환한다. 반환값을 지정하지 않은 경우에 undefined
를 반환한다.
function a() {}
a(); // undefined
return
문을 통해 반환값을 지정 할 수 있다.
function a() {
return "Hi function";
}
console.log(a()); // "Hi function" 출력
함수의 반환값을 상수나 변수에 대입할 수 있다.
function a(){
return 10;
}
const b = a();
console.log(b); // 10
return문이 실행이 되면 그 이후의 부분은 실행되지 않는다.
function d() {
for (let i = 0; i < 5; i++) {
if (i >= 3) {
return i;
}
}
}
d();
#4 매개변수와 인수
매개변수는 함수 선언에서 값이 들어가는 자리다. 인수는 매개변수에 실제로 입력하는 값이다.
function e(w, x, y, z) {
console.log(w, x, y, z);
console.log(arguments);
}
e("Hello", "Paramter", "Argument");
인수를 매개변수의 개수보다 더 적게 입력할 수 있다. 더 적게 입력시 undefined
로 입력된다.
#5 고차함수 사용하기
고차함수란 함수를 반환하는 함수다. 고차함수는 매개변수를 통해 내부함수를 사용자화 할 수 있다.
const outerfunc = (msg) => {
return () => {
console.log(msg);
};
};
const innerfunc1 = outerfunc("Hello");
const innerfunc2 = outerfunc("Bye");
const innerfunc3 = outerfunc("안녕");
innerfunc1();
innerfunc2();
innerfunc3();
고참함수를 호출할 때마다 내부 수준의 함수를 하나씩 반환한다.
const hof = (a) => (b) => (c) => {
return a + b * c;
};
const first = hof(3);
const second = first(4);
const third = second(5);
console.log(third); // 23