higher-order functions
고차 함수
는 다른 함수를 인수로 받아들이거나 함수를 출력으로 반환하는 함수이다.
여기서 우리는 함수를 변수에 할당할 수 있다. 이럴 때 코드를 더 간결하고, 읽기 쉽게 만들 수 있고 debug하기 용이해진다.
- 동기(synchronous) : 특정 코드를 수행완료 한 후 다음 코드를 실행
- 비동기(asynchronous) : 특정 코드를 수행하는 도중 다음 코드를 실행
비동기적으로 함수를 실행하고 싶을 때 콜백함수를 이용한다.
콜백함수 제어권을 갖게된 함수는 콜백함수의 호출 시점에 대한 제어권을 갖게 된다.
const addTwo = num => num + 2;
const checkConsistentOutput = (func, val) => {
let firstTry = func(val);
let secondTry = func(val);
if (firstTry === secondTry) {
return firstTry
} else {
return 'This function returned inconsistent results'
}
};
checkConsistentOutput(addTwo, 10);
console.log(checkConsistentOutput(addTwo, 10)); //12반환