자바스크립트에서는 함수를 일급객체로써 사용하게 되는데, 일급 객체란?
변수에 할당이 가능하다.
다른 함수의 인자로 전달이 가능하다.
다른 함수의 결과로 리턴이 가능하다.
❗ 함수 표현식은 함수 선언식과 다르게 호이스팅이 되지 않는다.
> 호이스팅이란 ? 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 말한다. (추후에 var const let 의 차이는 블로그에 올릴 예정)
참조 : <https://developer.mozilla.org/ko/docs/Glossary/Hoisting>
함수를 인자로 받을 수 있고, 함수의 형태로 리턴할 수 있는 함수 이 때, 다른 함수의 인자로 전달되는 함수를 콜백함수라고 한다.
map : 모든 요소에 동일한 행동을 한 값을 반환 (행동은 내가 함수로 작성이 가능)
filter : 모든 요소 중 내가 원하는 값만 필터링 해서 추출한다.(기존 배열을 수정 x)
reduce : 배열을 하나의 값으로 만들어준다. (초기 값을 정할 수 있다. 정하지 않는다면, 배열 처음 요소가 초기 값이 된다. 초기 값은 누적의 기반이되며, 그 다음 요소부터 현재값이 되고, 누적 값에 더해진다. 결국에는 누적 값이 더해진다.)
forEach : 주어진 함수를 배열 요소 각각에 대해 실행한다.
//예시
const array1 = ['a', 'b', 'c'];
array1.forEach(element => console.log(element));
// expected output: "a"
// expected output: "b"
// expected output: "c"
const array1 = [5, 12, 8, 130, 44];
const found = array1.find(element => element > 10);
console.log(found);
// expected output: 12
*sort : 배열의 요소를 정렬한 후 배열을 반환
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// expected output: Array ["Dec", "Feb", "Jan", "March"]
const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// expected output: Array [1, 100000, 21, 30, 4]
const array = [1, 2, 3, 4, 5];
// checks whether an element is even
const even = (element) => element % 2 === 0;
console.log(array.some(even));
// expected output: true
배열 메소드는 mdn에서 찾아서 예제들을 보면서 이해하면 될 것 같다.
이 후 배열 메소드를 통한 고차함수 이해는 코플릿 문제 해결을 통해 이해를 진행하였다.
코플릿과 sprint를 진행하면서, 헷갈리는 문제는 체크 해두도록 했다.
고차함수 코플릿 20, 21, 28, 30 ,31번 다시 한번 정리
sprint bareMinimum 복습
advanced(추후 진행)
nightmare(복습하면서 추후 진행)