일급객체란 ?
1.변수에 할당이 가능하다.
2.다른 함수의 인자로 전달이 가능하다.
3.다른 함수의 결과로서 리턴이 가능하다.
고차함수?
-함수를 전달인자로 받는 함수
-함수를 리턴하는 함수
그외
-콜백함수는 고차함수가 아니다. 함수의 전달인자로 전달되는 함수 이다.
-클로져===커링함수 ㅇ
-함수가 일급객체라서 우리가 고차함수를 사용할수 있는것이다.
고차함수 대표 매서드
1. map
배열의 각 요소에 콜백함수를 적용시킨 새로운 배열을 리턴해준다.

///콜백함수
let arr=[1,2,3,4,5]
function multiply2 (num){
return num*2
}
///함수를 적용시킨 새로운 배열 리턴
arr.map(multiply2)
[2,4,6,8,10]
2.filter
배열의 각 요소에 콜백 함수를 적용시켰을때 true를 리턴하는 요소들만 모은 새로운 배열을 리턴
원하는 값만 추출하고 싶을 때 사용한다.

let arr=[1,2,3,4,5]
arr.filter(el=>el%2 ===0) //참인 조건
//결과 [2,4]
3.reduce
배열의 각 요소를 콜백함수에 맞게 하나로 응축시킨 값을 리턴
초기값이 없으면 첫 누적값. 즉 배열의 첫번째 요소가 누적값에 들어가 초기값(acc)이 된다.
현재값은 배열의 두번째 요소 이다.
acc는 누적값을 나타내고
cur은 현재 값을 나타낸다.

let arr= [1,2,3,4,5]
arr.reduce((acc,cur)=>{
return acc+cur
})
//결과 15
아래의 경우 acc의 초기값 10 cur은 배열의 첫번째 요소인 1부터 시작 된다.
let arr=[1,2,3,4,5]
arr.reduce((acc,cur)=>{
},10)//<-초기값 설정
//결과는 25
!빈배열을 나타내야 할 때에는 초기값에 0을 꼭 넣어주어야 한다.!
4.오늘의 후기
reduce는 참 좋은 매서드인것 같다. 코플릿 과제를 풀면서 반복문에서 난관을 겪었던 지난 날을 돌아보면 버티길 잘한것같다. 요즘은 사실 하루가 어떻게 지나가는지 모를 만큼 시간이 참 빠르다 ㅠ 그래도 코플릿에서 푸는 과제는 section4를 제외하면 오늘이 마지막이라고 하니 기쁘다. 그리고 생각보다 고차함수에서 고비를 겪는 사람들이 많다고 하는데 나같은 경우 처음에는 헷갈렸지만 코플릿 예제를 풀다보니 개념이 와닿았고 굉장히 흥미롭게 공부 할 수 있었다. 그리고 요즘 함수 작성시 화살표 함수를 사용하는 연습을 하고 있는데 처음엔 적용시키기 헷갈렸는데 적응이 되니까 코드가 너무 깔끔해져서 기분이 좋다. 자바스크립트 너무 재밌다..!
'코드스테이츠 프론트엔드' 카테고리의 다른 글
| [JS/Node] 비동기 (0) | 2022.07.26 |
|---|---|
| [JavaScript] 객체 지향 프로그래밍 (0) | 2022.07.22 |
| Coz’ Mini Hackathon (0) | 2022.07.19 |
| Javascript-DOM (0) | 2022.07.14 |
| Day2 Unit2 - [JavaScript] 기초 (0) | 2022.06.27 |