logo
Search검색어를 포함하는 게시물들이 최신순으로 표시됩니다.
    Table of Contents
    [functional JS ES6+] 기본기

    이미지 보기

    [functional JS ES6+] 기본기

    • 22.06.03 작성

    • 읽는 데 2

    TOC

    용어

    평가(execution)

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

    1 + 2 //3
    

    일급 함수

    const add5 = a => a + 5;
    log(add5);
    log(add5(5));
    
    const f1 = () => () => 1;
    log(f1());
    
    • 함수를 으로 다룰 수 있다.
    • 함수의 인자와 결과로 다룰 수 있다.
    • 함수가 일급이라는 점을 이용해 조합성과 추상화 확보

    고차 함수

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

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

    const apply1 = f => f(1);
    const add2 = a => a + 2;
    log(apply1(add2)); // 3
    
    // n번 f 함수를 실행하는 함수
    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;
    
    • apply1은 함수를 인자로 받아 실행하므로 고차함수

    함수를 만들어 return하는 함수

    const addMaker = a => b => a + b;
    const add10 = addMaker(10);
    log(add10(5)); //15
    
    • 함수를 return하기 때문에 addMaker는 고차함수
    • 정확히는 클로저를 return. 위의 예에서는 a를 기억하는 함수
    profile

    FE Developer 박승훈

    노력하는 자는 즐기는 자를 이길 수 없다