일련의 처리(기능)를 모아서 언제든 호출할 수 있도록 만들어 둔 것
입력 값(Input)을 받아 해당 값에 함수의 작업을 처리한 뒤 결과 값(Output)을 반환한다.
함수를 선언하고 호출한다.
// 함수 선언문
function funcName(input) {
// 처리 코드
return output;
}
// 함수 표현식
const funcName = function(input) {
// 처리 코드
return output;
}
// Function 키워드
const funcName = new Function(input, /* 처리 코드 */ return output);
// 화살표 함수 표현식
const funcNAme = (input) => {
// 처리 코드
return output;
}
funcName(입력값);
함수를 선언하고 그 즉시 호출하여 실행하는 함수
함수 선언문을 ()로 묶은 뒤 그 뒤에 ()를 붙여 실행한다.
(function(input){
// 처리 코드
return output;
})(input);
일급 객체(First Class Object)란?
: 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체
const funcName = function() { console.log("FuncName") }
고차함수(Higher-order Function)
: 함수를 인수로 가지는 함수콜백함수(Callback Function)
: 함수의 인수로 들어간 함수function useFunction(func) {
func();
}
useFunction(funcName); // FuncName
function addNumber(number) {
return function(x) {
return x + number;
}
}
const addFive = addNumber(5); // function(x) { return x + 5; }
console.log(addFive(5)); // 10
const person = {
name: 'John',
sayHi: function() { console.log("Hi"); }
}
person.sayHi(); // Hi
const funcArray = [
function(a, b) { return a + b; },
function(a, b) { return a - b; };
]
funcArray[1](10, 5); // 5 (10 - 5)