오늘은 자바스크립트의 다양한 함수에 대해 정리해보려고 해요!
함수를 변수에 담아 값처럼 다루는 것을 의미
다음과 같은 형태로 사용할 수 있어요!
let count = function(x) {
return x++;
}
일급함수는 다음과 같은 3가지 조건을 충족해야 하는데요.
- 변수나 데이터 구조 안에 담을 수 있어야 한다.
- 함수의 인자로 전달이 가능해야 한다.
- 반환 값으로 사용될 수 있어야 한다.
결과 값으로 함수를 반환하거나 인자로 함수를 전달받는 함수
function calculate(a,b){
function addValue(){
return a + b;
}
return addValue; // 함수를 리턴!
}
let add = calculate(4,5);
console.log(add()); // 9
이 때, 다른 함수의 인자로 전달되는 함수를 콜백함수라고 합니다.
function calculate(val, func) { // 함수를 인자로 전달!
return func(5, val);
}
function addValue(a, b) {
return a + b;
}
console.log(calculate(7, addValue)); // 12
ES6에서 새로 추가된 함수식
=>
를 사용하여 표현(function 키워드 사용 x )
/* let add = function(a,b){ return a + b; } */
let add = (a, b) => a + b;
console.log(add(3,5)); // 8
화살표 함수는 function 표현에 비해 구문이 짧아 한 줄 함수
로 불리지만, this/arguments/new
등 사용이 불가능합니다.
let func = () => {};
let foo = new func(); // error!
이름 그대로 바로 호출이 되는 함수 의미
(function() {
// 실행 내용
})();