기능적 프로그래밍은 불변, 일류 기능, 인용 투명성 및 순수한 기능을 강조하는 프로그래밍 패러다임입니다. 우아하고 유지 관리 가능하며 확장 가능하며 예측 가능한 코드를 작성하는 데 도움이됩니다.
로 기록하거나 함수 외부의 변수를 조작하는 것이 포함됩니다.
<code class="language-javascript">let number = 2; function squareNumber() { number = number * number; // 非纯操作:操作函数外部的变量 console.log(number); // 非纯操作:控制台记录值 return number; } squareNumber();</code>
변수를 사용하여 함수 안에 설정합니다. 이것은이 원칙을 위반합니다. 글로벌 변수 변경에 크게 의존하면 코드는 예측할 수없고 추적하기가 어렵습니다. 오류가 발생한 위치와 값이 변경된 이유를 찾기가 더 어려울 것입니다. 대신 입력, 출력 및 로컬 변수만으로 디버깅이 더 쉽습니다. number
<code class="language-javascript">// 纯函数 function squareNumber(number) { return number * number; } squareNumber(2);</code>를 우선시합니다. 즉, 데이터는 직접 수정되지 않습니다. 불변은 예측 가능성을 가져옵니다 - 데이터의 가치를 알고 있으며 변경되지 않습니다. 코드를 간단하고 테스트 가능하며 분산 및 멀티 스레드 시스템에서 실행합니다.
를 사용하면 배열의 일부를 얻을 수 있습니다. 대신, 기능적 패러다임에서 배열을 복사하고 프로세스에서 제거하려는 요소를 삭제합니다.
.pop()
.splice()
및
<code class="language-javascript">// 不具有引用透明性 Math.random(); // 0.1406399143589343 Math.random(); // 0.26768924082159495</code>
<code class="language-javascript">// 我们直接修改 myArr const myArr = [1, 2, 3]; myArr.pop(); // [1, 2]</code>는 우리가 제공하는 조건을 충족하는 값 만 포함하는 이전 배열에서 새 배열을 반환하는 데 사용됩니다.
는 배열의 항목을 반복하고 제공된 논리에 따라 각 항목을 수정하는 데 사용됩니다. 다음 예에서는 값에 2를 곱한 함수를 전달하여 배열의 각 항목을 두 배로 늘립니다.
<code class="language-javascript">// 我们复制数组而不包含最后一个元素,并将其存储到变量中 let myArr = [1, 2, 3]; let myNewArr = myArr.slice(0, 2); // [1, 2] console.log(myArr);</code>
reduce
를 만들 수 있습니다.
filter
<code class="language-javascript">let number = 2; function squareNumber() { number = number * number; // 非纯操作:操作函数外部的变量 console.log(number); // 非纯操作:控制台记录值 return number; } squareNumber();</code>
기능 조합
averageArray
<code class="language-javascript">// 纯函数 function squareNumber(number) { return number * number; } squareNumber(2);</code>
기능 프로그래밍을 사용하는 방법은 무엇입니까?
기능 프로그래밍에 대한 자주 묻는 질문
기능적 프로그래밍은 몇 가지 주요 원칙을 기반으로합니다. 첫 번째는 불변량입니다. 이는 변수가 설정되면 변경할 수 없음을 의미합니다. 이렇게하면 부작용을 제거하고 코드를 쉽게 이해할 수 있습니다. 두 번째 원칙은 순수한 함수이며, 이는 함수의 출력이 숨겨진 입력이나 출력없이 입력에 의해서만 결정됨을 의미합니다. 세 번째 원칙은 일류 함수이며, 이는 기능이 다른 함수에 대한 입력 또는 출력으로 사용될 수 있음을 의미합니다. 이를 통해 고차 기능을 제공하고 코드를보다 간결하고 이해하기 쉽게 만듭니다.
기능적 프로그래밍은 많은 이점을 제공합니다. 부작용과 돌연변이 상태를 피하기 때문에 코드를 쉽게 읽고 이해할 수 있습니다. 또한 동일한 입력에 대해 항상 동일한 출력을 생성하는 순수한 기능의 사용을 권장하기 때문에 코드를보다 신뢰할 수 있습니다. 또한 기능 프로그래밍은 기능을 분리하여 테스트 할 수 있으므로 코드를보다 쉽게 테스트하고 디버깅 할 수 있습니다.
위 내용은 기능 프로그래밍이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!