함수호출은 괄호로.
ex)
add( ) {
}
7-1. 함수선언식과 함수표현식
let 함수표현식 = function(){} // 호이스팅 X
function 함수선언식(){} // 호이스팅 O
호이스팅이란? 함수가 중단, 하단 등 어느 곳에 위치하든 맨위에 위치하는 것처럼 해주는 것.
깊게 들어가자면, 함수표현식도 호이스팅은 일어나지만 '일시적 사각지대(TDZ)'에 놓여 에러가 나는 것.
(TDZ : Temporal Dead Zone)
function add(a = 100, b = 200) { // 100, 200은 인자가 없을 경우의 디폴트(기본)값
console.log(a, b);
return a + b;
}
add({b: 300}); // 400
7-2. 콜백함수
함수를 인자(argument)로 주고 나중에 그걸 실행시키겠다.
function add(x, y) {
return x + y;
}
function mul(x, y) {
return x * y;
}
function cal(a, b){
return a(10, 10) + b(10, 10);
}
cal(add, mul); // 120
7-2-1. 화살표 함수
function cal(a, b){
return a(10, 10) + b(10, 10);
}
위의 함수를 아래의 함수처럼 간단하게 표현할 수도 있다.
let cal((a, b) => a + b, (a, b) => a * b);