변수에 할당(assignment)할 수 있다.
// 변수 square에 함수를 할당
const square = function (num) {
return num * num;
}
// 변수 square에는 함수가 할당되어 있으므로 (일급 객체), 함수 호출 연산자 '()'를 사용할 수 있다.
console.log(square(5)); // 25
다른 함수의 전달인자(argument)로 전달될 수 있다.
다른 함수의 결과로서 리턴(return)될 수 있다.
함수가 일급객체라서 고차함수로 활용 가능하다.
함수를 전달인자(argument)로 받을 수 있다.
// func처럼 함수에 인자로 전달되는 함수를 콜백함수 라고 한다.
function functionParameter(func, num) {
return func(num);
}
function square(num) {
return num * num;
}
console.log(functionParameter(square, 6));
함수를 리턴(return)할 수 있는 함수이다.
// 함수를 리턴하는 함수를 커링함수라고 한다.
let add = function(num1) {
return function(num2) {
return num1 + num2
}
}
let add3 = add(3)
console.log(add3);
.
)과 Bracket Notation([]
)으로 객체에 접근할 수 있다.true
를 리턴하는 요소들만 모은 새로운 배열을 리턴acc
, cur
는 두 번째 요소부터 시작한다.배열 내장 메서드 | 설명 |
---|---|
find | 콜백함수의 반환 값이 true 인 첫 번째 요소 반환 |
findIndex | 콜백함수의 반환 값이 true 인 첫 번째 요소의 인덱스 반환 |
some | 콜백함수의 반환 값이 단 한 번이라도 참이면 true , 모두 거짓이면 false |
every | 콜백함수의 반환 값이 모두 참이면 true , 하나라도 거짓이면 false |
sort | 요소들을 정렬(유니코드 순서대로) |
추상화 : 복잡한 어떤 것을 압축해서 핵심만 추출한 상태로 만드는 것을 말한다.
고차 함수는 이 추상화의 수준을 사고의 추상화 수준으로 끌어올려준다.
즉, 추상화의 수준이 높아지면 생산성도 비약적으로 상승할 수 있기 때문에 중요하다.
강의 자료로만 보았을 때는 크게 어려움이 없어보였는데
막상 코플릿으로 문제들을 풀어보니 한 문제를 푸는 데도 시간이 굉장히 오래걸렸다.
오늘 배운 내용, 특히 배열 내장 메서드(map, filter, reduce)는 앞으로 자주 사용하게 될 중요한 부분이므로 꼭꼭 잊지말고 많이 연습해서 손에도 익히도록 해야겠다. ✨