JavaScript ES6 평가와 일급

김재민·2022년 7월 3일
0

평가

코드가 계산되어 값을 만드는 것

일급

  • 값으로 다룰 수 있다.
  • 변수에 담을 수 있다.
  • 함수의 인자로 사용될 수 있다.
  • 함수의 결과로 사용될 수 있다.
const a = 10;
const add10 = a => a+10;
const r = add10(a);
log(r);

일급함수

  • 함수를 값으로 다룰 수 있다.
  • 조합성과 추상화의 도구
const add5 = a => a+5;
log(add5);
log(add5(5));

const f1 = () => () => 1;
log(f1());
//결과 : ()=>1

const f2 = f1();
log(f2);
log(f2());
//결과 : ()=>1
//결과 : 1

고차함수

  • 함수를 값으로 다루는 함수

함수를 인자로 받아서 실행하는 함수

  • apply1
  • times
const apply1 = f => f(1);
const add2 = a=>a+2;

console.log(apply1(add2));
//결과 : 3
console.log(apply1(a => a -1)));
//결과 : 0

const times = (f, n) => {
  let i = -1;
  while(++i < n) f(i);
};

times(log,3);
// 결과 : 0
//		 1
// 	     2

times(a=> log(a+10), 3);
//결과 : 10
//		11
//		12

# 함수를 만들어 리턴하는 함수(클로저를 만들어 리턴하는 함수)
# -addMaker는 클로저를 리턴하는 함수
# b=>a+b함수는 함수이자 a를 계속기억하는 클로저
const addMaker = a => b => a+b;
const add10 = addMaker(10);
log(add10(5));
//결과 : 15
log(add10(10));
//결과 : 20

profile
어제의 나보다 나은 오늘의 내가 되자!🧗‍♂️

0개의 댓글