JavaScript에서 회고록 구현
-
암기에는 특정한 한계가 있습니다. 메모리 소비를 증가시키고 빠르게 실행하거나 저주파를 호출하는 기능에는 적합하지 않을 수 있습니다. 투명 함수에 대한 참조로만 자동화 될 수 있습니다. 즉, 출력은 입력에만 의존하며 부작용을 생성하지 않습니다. - 이 기능은 더 작은 "n"값에 적합합니다. 그러나 "N"이 증가함에 따라 성능이 빠르게 떨어집니다. 두 재귀 호출이 같은 작업을 반복하기 때문입니다. 예를 들어, 50 번째 Fibonacci 번호를 계산하려면 재귀 함수를 40 억 회 이상 (40,730,022,147) 이상 호출해야합니다! 설상가상으로 51 번째 그림을 계산하려면 작업을 거의 두 번 반복해야합니다. 기능이 이전에 계산 한 내용을 기억하면 반복 작업의 문제를 완화 할 수 있습니다. 암기의 기본
-
암기는 기능의 이전 계산 결과를 캐싱하여 기능의 성능을 향상시키려는 프로그래밍 기술입니다. JavaScript 객체는 연관 배열처럼 행동하기 때문에 캐시 역할을하는 데 이상적입니다. 메모리 함수가 호출 될 때마다 매개 변수는 인덱스 캐시에 사용됩니다. 데이터가 존재하면 전체 기능을 실행하지 않고 반환 할 수 있습니다. 그러나 데이터가 캐시되지 않으면 기능이 실행되고 결과가 캐시에 추가됩니다. -
메모리 함수는 입력 매개 변수로 인덱스 된 캐시를 저장합니다. 캐시에 매개 변수가 존재하면 캐시 값이 반환됩니다. 그렇지 않으면 함수를 실행하고 새로 계산 된 값을 캐시에 추가하십시오. -
암기는 참조 투명 함수에 자동으로 적용될 수 있습니다. - JavaScript (FAQ)에서 암기에 대한 FAQ
-
암기는 자바 스크립트 및 기타 언어로 컴퓨터 프로그램을 최적화하는 데 사용되는 프로그래밍 기술입니다. 이 기술에는 비싼 함수 호출 결과를 저장하고 동일한 입력이 다시 나타날 때 재사용하는 것이 포함됩니다. 이는 불필요한 계산을 피함으로써 프로그램의 성능을 크게 향상시킬 수 있습니다. 동일한 매개 변수로 반복적으로 호출되는 재귀 함수 또는 함수가있는 상황에서 특히 유용합니다. -
JavaScript에서, 메모리는 기능 호출의 결과를 저장하기 위해 캐시를 만들어 작동합니다. 함수를 호출 할 때 기능은 먼저 주어진 입력 결과가 이미 캐시에 있는지 확인합니다. 그렇다면 함수는 계산을 다시 수행하는 대신 캐시 된 결과를 반환합니다. 결과가 캐시에 있지 않으면 함수는 계산을 수행하고 결과를 캐시에 저장하고 결과를 반환합니다.
function fibonacci(n) { if (n === 0 || n === 1) return n; else return fibonacci(n - 1) + fibonacci(n - 2); }
<🎜 🎜>
<<> 캐시 객체 매개 변수
<🎜 🎜><🎜 🎜> <<> 자동 메모리
function fibonacci(n) { if (n === 0 || n === 1) return n; else return fibonacci(n - 1) + fibonacci(n - 2); }
<<> 제한
var fibonacci = (function() { var memo = {}; function f(n) { var value; if (n in memo) { value = memo[n]; } else { if (n === 0 || n === 1) value = n; else value = f(n - 1) + f(n - 2); memo[n] = value; } return value; } return f; })();
함수에 자동으로만 적용될 수 있다는 것입니다. 함수의 출력이 입력에만 의존하고 부작용을 생성하지 않으면 함수는 참조 변환으로 간주됩니다. 이 참조 투명 함수는 프로그램의 의미를 변경하지 않고 반환 값으로 대체 할 수 있습니다. Fibonacci 함수는 전적으로 "n"의 값에 의존하기 때문에 투명합니다. 다음 예에서는 FOO () 함수가 글로벌 변수 "bar"를 사용하기 때문에 투명하지 않습니다. "bar"는 foo () 외부에서 수정 될 수 있기 때문에 각 입력 값에 대해 반환 값이 변경되지 않음을 보장 할 수 없습니다. 이 예에서는 두 개의 호출에 전달 된 매개 변수가 동일하더라도 Foo () 반환 값 2 및 3에 대한 두 호출. <🎜 🎜> <<> 기억해야 할 것들
<🎜 🎜>
암기는 순수한 기능과 함께 사용될 때 가장 효과적입니다. 순수한 함수는 항상 동일한 입력의 동일한 결과를 반환하고 부작용을 일으키지 않는 함수입니다. 기능을 암기하면 외부 상태에 의존하거나 부작용이있는 경우 예상치 못한 결과로 이어질 수 있습니다. 따라서 JavaScript의 모든 유형의 기능에 대해 기술적으로 암기를 사용할 수는 있지만 순수한 기능에 가장 적합합니다.
여러 매개 변수가있는 함수에 대한 메모리 구현은 약간 복잡 할 수 있지만 이는 확실히 가능합니다. 한 가지 방법은 인수를 캐시의 키로 사용할 수있는 문자열로 변환하는 것입니다. 예는 다음과 같습니다.
예, JavaScript에서 암기하는 데 도움이되는 라이브러리와 도구가 있습니다. 예를 들어, 인기있는 JavaScript 유틸리티 라이브러리 Lodash는 기능을 쉽게 암기 할 수있는
기능을 제공합니다. 마찬가지로 Ramda 라이브러리는 사용자 정의 캐시 키 함수를 지정할 수있는function fibonacci(n) { if (n === 0 || n === 1) return n; else return fibonacci(n - 1) + fibonacci(n - 2); }
메모리 기능에서 캐시를 지우는 방법은 무엇입니까?
_.memoize
예, 메모리는 React와 같은 JavaScript 프레임 워크에서 매우 유용합니다. 예를 들어, React는 구성 요소를 암기하는 데 사용할 수있는 R.memoizeWith
함수를 제공합니다. 이는 부품의 불필요하게 다시 렌더링을 방지하여 성능을 향상시키는 데 도움이 될 수 있습니다.
암기는 강력한 최적화 기술이지만 항상 최상의 솔루션은 아닙니다. 경우에 따라 Dejitter 및 스로틀링과 같은 다른 최적화 기술이 더 적합 할 수 있습니다. 핵심은 프로그램의 특정 요구와 제약을 이해하고 올바른 최적화 기술을 선택하는 것입니다.
위 내용은 JavaScript에서 회고록 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











기사는 JavaScript 라이브러리 작성, 게시 및 유지 관리, 계획, 개발, 테스트, 문서 및 홍보 전략에 중점을 둡니다.

이 기사는 브라우저에서 JavaScript 성능을 최적화하기위한 전략에 대해 설명하고 실행 시간을 줄이고 페이지로드 속도에 미치는 영향을 최소화하는 데 중점을 둡니다.

프론트 엔드 개발시 프론트 엔드 열지대 티켓 인쇄를위한 자주 묻는 질문과 솔루션, 티켓 인쇄는 일반적인 요구 사항입니다. 그러나 많은 개발자들이 구현하고 있습니다 ...

이 기사는 브라우저 개발자 도구를 사용하여 효과적인 JavaScript 디버깅, 중단 점 설정, 콘솔 사용 및 성능 분석에 중점을 둡니다.

이 기사는 소스 맵을 사용하여 원래 코드에 다시 매핑하여 미니어링 된 JavaScript를 디버그하는 방법을 설명합니다. 소스 맵 활성화, 브레이크 포인트 설정 및 Chrome Devtools 및 Webpack과 같은 도구 사용에 대해 설명합니다.

이 기사는 Java의 컬렉션 프레임 워크의 효과적인 사용을 탐구합니다. 데이터 구조, 성능 요구 및 스레드 안전을 기반으로 적절한 컬렉션 (목록, 세트, 맵, 큐)을 선택하는 것을 강조합니다. 효율적인 수집 사용을 최적화합니다

엔트리 레벨 타입 스크립트 자습서를 마스터 한 후에는 TypeScript를 지원하고 JavaScript로 컴파일하는 IDE에서 자신의 코드를 작성할 수 있어야합니다. 이 튜토리얼은 TypeScript의 다양한 데이터 유형으로 뛰어납니다. JavaScript에는 NULL, UNDEFINED, BOOLEAN, 번호, 문자열, 기호 (ES6에 의해 소개 됨) 및 객체의 7 가지 데이터 유형이 있습니다. TypeScript는이 기반으로 더 많은 유형을 정의 하며이 튜토리얼은이 모든 튜토리얼을 자세히 다룹니다. 널 데이터 유형 JavaScript와 마찬가지로 Null in TypeScript

이 튜토리얼은 Chart.js를 사용하여 파이, 링 및 버블 차트를 만드는 방법을 설명합니다. 이전에는 차트 유형의 차트 유형을 배웠습니다. JS : 라인 차트 및 막대 차트 (자습서 2)와 레이더 차트 및 극지 지역 차트 (자습서 3)를 배웠습니다. 파이 및 링 차트를 만듭니다 파이 차트와 링 차트는 다른 부분으로 나뉘어 진 전체의 비율을 보여주는 데 이상적입니다. 예를 들어, 파이 차트는 사파리에서 남성 사자, 여성 사자 및 젊은 사자의 비율 또는 선거에서 다른 후보자가받는 투표율을 보여주는 데 사용될 수 있습니다. 파이 차트는 단일 매개 변수 또는 데이터 세트를 비교하는 데만 적합합니다. 파이 차트의 팬 각도는 데이터 포인트의 숫자 크기에 의존하기 때문에 원형 차트는 값이 0 인 엔티티를 그릴 수 없습니다. 이것은 비율이 0 인 모든 엔티티를 의미합니다
