💡 이번에 배운 내용
- Section 2.
서버와 통신이 가능한 구조적인 Web App을 만들 수 있다.- Unit1. Javascript 고차함수: 고차 함수를 학습하여 보다 복잡한 알고리즘을 직접 구현할 수 있다.
이번 학습은 언뜻 많지 않아 보이지만 공부할 시간은 제일 부족했다.
filter, map, reduce를 활용해 문제를 풀어보지 않으면 이해가 어려웠기 때문이다. 특히 코딩문제를 풀 때는 reduce가 제일 골치아팠다.
고차함수라니 정말 편리하면서도 복잡한 개념이다!
학습하면서 시간이 모자라기도 하고 공부 양이 많아 살짝 위기가 올 뻔 했는데..... 🫠 포기하지 말고 차근차근 하자!
일급 객체, 고차함수, 콜백함수, map, filter, reduce
일급 객체는 특별한 대우를 받는 객체로 함수가 대표적이다.
위의 특징처럼 전달인자를 함수로 받거나, 함수를 리턴하는 함수를 고차함수라고 한다.
내장 고차 함수로는 filter, map, reduce 등이 있다.
let arr=[1,2,3,4];
let arrFilter=arr.filter(el=>el%2==0);
let arrMap=arr.map(el=>el*2);
let arrReduce=arr.reduce((acc,cur)=>acc+cur, 0);//0은 초기값
console.log(arrFilter); //[2,4]
console.log(arrMap); //[2,4,6,8]
console.log(arrReduce); //10
배열의 각 요소를 콜백함수의 조건이 true인 경우만 모아 새로운 배열을 리턴한다.
말 그대로 원하는 조건대로 필터링하여 배열을 구성할 수 있다.
배열의 각 요소에 콜백함수를 적용시킨 새로운 배열을 리턴한다.
원하는 조건으로 배열을 재구성할 수 있다.
배열의 각 요소를 콜백 함수에 따라 하나의 값으로 축소하여 값을 리턴한다.
콜백함수의 인자는 누산, 각 요소가 되며
초기값을 따로 설정하지 않으면 배열의 첫번째 요소가 초기값이 된다.
배열 요소의 총합, 배열 요소의 총 곱 등 배열의 값을 누산하는데 사용한다.
배열의 요소끼리 비교할 때도 사용할 수 있다.
컴퓨터 공학에서 추상화는 쉽게 말해 복잡한 개념을 압축해 핵심만 추리는 것을 의미한다. 사용자 입장에서 어떤 정보를 입력하고 원하는 결과를 출력받을 때, 그 중간 과정에 대해서 알지 못해도 원하는 결과를 받는 경우 추상화라고 볼 수 있다.
프로그래밍시 자주 사용하는 기능을 함수로 작성하여 사용할 때 이 함수를 일종의 논리, 로직logic이라고 가정하자. 이 로직은 값을 전달인자로 받는 값(value) 수준의 추상화이다.
그리고 고차 함수는 이 로직을 전달받거나 리턴하는 로직으로, 중간의 복잡한 로직을 생략했다. 이를 로직 수준의 추상화, 사고(thought) 수준의 추상화라 볼 수 있다.
결론적으로, 추상화의 관점에서 고차함수는 값을 전달인자로 받는 값 수준의 추상화가 아니라
함수를 전달받거나 리턴하는 사고 수준의 추상화라 할 수 있다.
1. prototype 이란?
프로토타입은 일급 객체인 함수만이 가진 속성이다. 이 프로토타입 속성을 이용해 프로토타입 체인과 상속 등이 가능하다.
이 개념을 이해하기 위해서는 객체 지향 프로그래밍, 인스턴스, 상속 등을 학습해야 한다! 때문에 추후에 좀 더 상세히 다룰 학습할 예정이다.