[TIL] 2021.03.18 한 차원 높게 생각하기_lesson JS, 고차함수(Hell)

나라리야·2021년 3월 18일
1

TIL_codestates

목록 보기
11/12
post-thumbnail

정말 이번주는 지옥의 용암맛인 한주였다.
고차함수와 알고리즘이 쉴새없이 몰아치는데 이건..ㅎㅎㅎ...

특별한 대우를 받는 일급 객체(first-class citizen)엔느 함수가 있다.

함수(function)은
변수에 할당(assignment)할 수 있다.
다른 함수의 인자(argument)로 전달될 수 있다.
다른 함수의 결과로서 리턴될 수 있다.

고로 함수는 데이터를 다루듯이 사용할 수 있고, 변수에도 저장이 가능해 배열의 요소나 객체의 속성값으로도 저장하는 것도 가능하다.

고차 함수(higher order function)
함수를 인자(argument)로 받거나 함수를 리턴하는 함수
다른 함수(caller)의 인자(argument)로 전달되는 함수를 콜백 함수(callback function)

고차함수가 고용주라면 콜백함수는 알바생!

내장 고차 함수

Map(변형)

map은 데이터를 변형하고자 할 때 사용합니다.
기존 데이터를 변형하여 새로운 컨테이너를 만드는데, 기존 데이터는 변형되지 않습니다.
특히 map은 기존의 for-in 구문과 큰 차이가 없지만, map 사용시 다음과 같은 이점이 있습니다.
배열의 각 요소가 특정 논리(함수)에 의해 다른 요소로 지정(map) 된다.

코드의 간결성
재사용 용이
컴파일러 최적화 성능 좋음

Filter(추출)

filter는 데이터를 추출하고자 할 때 사용
기존 데이터값에서 내부의 값을 걸러 새로운 값을 만듬,filter는 이렇게 조건에 맞는 데이터만 분류(filtering) 할 때 사용 한다.
배열의 각 요소가 특정 논리(함수)에 따르면, 사실(boolean)일 때 따로 분류한다(filter).

Reduce(결합)

reduce는 데이터를 합쳐주기 위해 사용합니다.
기존 데이터에서 내부의 값들을 결합하여 새로운 값을 만든다.
배열의 각 요소를 특정 응축 방법(함수)에 따라 원하는 하나의 형태로 응축한다(reduction).

profile
Code의 美를 추구하는 개발자 🪞

0개의 댓글