[JavaScript] TWIL : 내장메소드, 고차함수 구현하기(20/09.12~09.20)

정빈·2020년 10월 25일
0
post-custom-banner

이미 내장된 메소드(함수)를 직접 함수로 구현하는 스프린트를 진행했다.



  1. 과제에 앞서 고차함수(Higher-order Function : HoF)을 공부했다.
    함수는 자바스크립트에서 일급객체(first-class)로 취급한다. 간단하게 특별대우를 받는다는 뜻인데,
    그래서 함수는 변수에 할당할 수 있고, 다른 함수의 인자로 전달될 수 있으며, 다른 함수의 결과값으로 리턴될 수 있다!

1-1. 변수에 함수를 할당하는 것을 '함수 표현식'이라고 한다.

const double = function (num) {
  return num + num;
};
double(7); // -> 14

1-2. 함수 선언식은 모두가 알다시피, function으로 선언을 시작하고 함수명이 확실하다.

function double(num) {
  return num + num;
};

1-3. 여기서 '호이스팅(hoisting)'이라는 개념이 등장하는데,
호이스팅이란 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것이다.

  • 함수 표현식에는 호이스팅이 적용되지 않는다. 그러므로 함수 할당 전(윗 줄)에는 사용할 수 없다. 그래서 할당과 실행 위치가 중요하기 때문에, 코드의 위치를 예측할 수 있다. 유지보수다 상대적으로 수월할 것이다.
  • 함수 선언식에는 호이스팅이 적용된다. 그래서 선언과 실행 위치가 전혀 상관없다. 그렇다면 유지보수가 상대적으로 힘들 수 있고, 디버거를 사용할 때 화면이 크게 왔다갔다 하는 현상이 생길 수 있다.

장단점을 잘 파악해두자.




2. 그렇게 시작되는 것이 '고차함수'인데, 함수가 인자로 들어가는 함수를 고차함수라고 하고 함수를 리턴하는 함수를 커링함수라고 한다.
개념을 묶어 그냥 고차함수로 지칭해도 무방하다고 한다.




3. Boolean값&& 와 || 연산자를 이용해 알고리즘을 구현할 수 있다는 걸 알 수 있었다.

true && false // -> false
true || false // -> true


4. Object 메소드 이용하기. Object.keys(obj) -> 객체의 키들만 쏙 뽑은 배열로 리턴. 배열처럼 조회, 접근이 가능하다!
profile
Back-end. You'll Never Walk Alone.
post-custom-banner

0개의 댓글