기능적 JavaScript — 이점

https://www.amazon.com/John-Au-Yeung/e/B08FT5NT62에서 Amazon에서 내 책을 확인하십시오.

지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.

JavaScript는 부분적으로 함수형 언어입니다.

JavaScript를 배우려면 JavaScript의 기능적인 부분을 배워야 합니다.

이 기사에서는 JavaScript에서 함수형 프로그래밍 기능을 사용하는 방법을 살펴보겠습니다.

함수형 프로그래밍 이점



함수형 프로그래밍에는 다양한 이점이 있습니다.

이것이 JavaScript와 같은 프로그래밍 언어에 채택되는 이유입니다.

순수 함수



함수형 프로그래밍의 한 가지 이점은 코드에서 순수 함수를 정의한다는 것입니다.

순수 함수는 동일한 입력을 전달하면 동일한 출력을 반환합니다.

예를 들어 다음과 같이 작성할 수 있습니다.

const square = (value) => value ** 2;


우리는 값을 얻고 그 제곱을 반환합니다.

이것은 밖에서 무슨 일이 일어나도 변하지 않습니다.

이점은 순수 함수를 쉽게 테스트할 수 있다는 것입니다.

약간의 입력을 제공한 후 출력을 확인할 수 있습니다.

외부에 의존하지 않기 때문에 쉽게 확인할 수 있습니다.

다음과 같이 작성하여 반환된 값을 확인할 수 있습니다.

square(2) === 4


합리적인 코드



함수에 대한 코드가 모두 함수 안에 있기 때문에 코드를 읽기 쉽습니다.

예를 들어 다음이 있는 경우:

const square = (value) => value ** 2;


우리가 한 것은 전달된 숫자를 제곱하는 것뿐입니다.

밖에는 아무것도 없으니 쉽게 볼 수 있습니다.

병렬 코드



순수 함수는 함수 외부의 값에 의존하지 않기 때문에 함수의 값을 외부와 동기화하는 것에 대해 걱정할 필요가 없습니다.

전역 값이 있는 경우 다음과 같이 해야 할 수 있습니다.

let global = "something"
let foo = (input) => {
  global = "somethingElse"
}

let bar = () => {
  if (global === "something") {
    //...
  }
}


무언가를 하기 전에 global 변수의 값을 확인해야 합니다.

순수 함수를 사용하면 외부 종속성이 없기 때문에 그렇게 할 필요가 없습니다.

캐시 가능



순수 함수는 주어진 입력에 대해 항상 동일한 출력을 반환합니다.

따라서 함수 출력을 쉽게 캐시할 수 있습니다.

입력을 키로 사용하고 출력을 값으로 사용합니다.

캐시에서 값을 조회할 수 있습니다.

캐싱을 통해 코드 속도를 높일 수 있습니다.

예를 들어 객체와 함께 캐시를 유지할 수 있습니다.

const cache = {
  1: 2,
  3: 4,
  //...
}


그런 다음 다음과 같이 작성하여 캐시된 값을 확인하거나 캐시할 수 있습니다.

const value = cache.hasOwnProperty(input) ?
  cache[input] :
  cache[input] = longRunningFunction(input)

longRunningFunction 를 실행하기 전에 캐시된 값을 확인합니다.

파이프라인 및 컴포저블



순수 함수를 쉽게 작성할 수 있습니다.

하나의 순수 함수의 반환 값을 다른 순수 함수에 전달하기만 하면 됩니다.

예를 들어 다음과 같이 작성할 수 있습니다.

const foo = (a) => {
  return a * 2;
}

const bar = (b) => {
  return b * 3;
}


다음과 같이 작성하여 함수를 구성할 수 있습니다.

foo(bar(100));


수학 함수처럼 보이지만 수학 함수입니다.

결론



함수형 프로그래밍에는 다양한 이점이 있습니다.

동기 코드가 필요 없기 때문에 코드를 병렬로 쉽게 실행할 수 있습니다.

또한 함수를 쉽게 구성할 수 있습니다.

또한 읽고 테스트하기가 더 쉽습니다.

좋은 웹페이지 즐겨찾기