JAVASCRIPT

[JavaScript] 06. 자바스크립트 함수(일급함수, 고차함수, 화살표 함수, 즉시 실행 함수)

송우든 2020. 10. 26. 02:35
728x90

# 일급 함수

일급 함수란, 함수를 변수에 담아 값처럼 다루는 것을 의미하며 아래와 같이 사용할 수 있습니다.

let count = function(x){

	return x++;
}

일급 함수는 다음과 같은 조건을 충족해야 합니다.

> 변수나 데이터 구조 안에 담을 수 있어야 함

> 함수의 인자로 전달 가능해야 함

> 리턴 값으로 사용될 수 있어야 함

 

# 고차 함수 (Higher-Order Function)

고차 함수는 결과값으로 함수를 반환하거나 인자로 함수를 전달받는 함수를 의미합니다.

이때, 다른 함수의 인자로 전달되는 함수를 콜백 함수라고 부릅니다.

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

 

# 화살표 함수 (Arrow Function)

화살표 함수는 ES6에 새로 추가된 함수식으로 기존의 function 키워드 대신 => 을 사용하여 표현합니다.

/*

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() {
  // 실행 내용
})();
728x90