[ Javascript ] 함수

  • 함수: 특정한 작업을 수행하는 코드
  • 익명함수: 이름이 없는 함수
  • 함수 선언문: 함수 키워드를 사용하여 함수를 선언한 문장
  • 함수 표현식: 함수를 상수나 변수에 대입하는 방식
  • 화살표함수: 화살표 기호를 사용하는 함수
  • 함수 호출하기: 함수를 사용하는 행위

#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