기능적 JavaScript — 이점
지금 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));
수학 함수처럼 보이지만 수학 함수입니다.
결론
함수형 프로그래밍에는 다양한 이점이 있습니다.
동기 코드가 필요 없기 때문에 코드를 병렬로 쉽게 실행할 수 있습니다.
또한 함수를 쉽게 구성할 수 있습니다.
또한 읽고 테스트하기가 더 쉽습니다.
Reference
이 문제에 관하여(기능적 JavaScript — 이점), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aumayeung/functional-javascript-benefits-1jdl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)