이 글은 JavaScript 고차 함수(코드 포함)에 대한 자세한 소개를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
함수를 데이터로 사용하고 강력한 패턴을 잠금해제하세요.
고차 함수
다른 함수를 받아들이거나 반환하는 함수를 고차 함수라고 합니다.
가 고차인 이유는 문자열, 숫자 또는 부울 값이 아니라 더 높은 수준의 기능을 작동하기 때문입니다. 아름다운 메타.
JavaScript에서 함수를 사용하면
- 변수로 저장하고
- 배열로 사용하고
- 객체 속성(메서드)으로 할당하고
- 매개변수로 전달하고
- 다른 함수에서 전달합니다. 함수는 반환합니다. 다른 모든 데이터와 마찬가지로
함수는 데이터에서 작동합니다
String은 datasayHi = (name) => `Hi, ${name}!`;
result = sayHi('User');
console.log(result); // 'Hi, User!'
Number는 datadouble = (x) => x * 2;
result = double(4);
console.log(result); // 8
Boolean은 datagetClearance = (allowed) => allowed ?
'Access granted' :
'Access denied';
result1 = getClearance(true);
result2 = getClearance(false);
console.log(result1); // 'Access granted'
console.log(result2); // 'Access denied'
Object는 datagetFirstName = (obj) => obj.firstName;
result = getFirstName({
firstName: 'Yazeed'
});
console.log(result); // 'Yazeed'
Array는 datalen = (array) => array.length;
result = len([1, 2, 3]);
console.log(result); // 3
이 5가지 유형은 모두 주류 언어 중 하나입니다. . 무엇이 그들을 일류 시민으로 만드는가? 이를 전달하고, 변수와 배열에 저장하고, 계산의 입력으로 사용할 수 있습니다. 모든 데이터
처럼 사용할 수 있습니다.함수는 데이터로도 사용할 수 있습니다.
JavaScript에서 함수를 데이터로 사용하는 4가지 방법:
다른 함수에 매개변수로 전달
- 객체 속성으로 설정
- 배열에 저장
- 변수로 설정
- 함수를 매개변수로
isEven = (num) => num % 2 === 0; result = [1, 2, 3, 4].filter(isEven); console.log(result); // [2, 4]
filter
가 isEven
을 사용하여 디지털로 유지할 항목을 결정하는 방법을 살펴보세요. isEven
은 다른 함수의 매개변수
인 함수입니다.filter
是如何用 isEven
来决定保留哪些数字的? isEven
是一个函数,是另一个函数的参数。
它由每个数字的 filter
调用,并使用返回值 true
或 false
来确定这个数字是否应该保留或丢弃。
返回函数
add = (x) => (y) => x + y;
add
需要两个参数,但不是一次全部提供。这是一个只需要 x
的函数,它返回一个只需要y
的函数。因为 JavaScript 允许函数成为返回值 —— 就像字符串、数字、布尔值那样。
如果你愿意,仍然可以立即提供 x
和 y
,并进行双重调用
result = add(10)(20); console.log(result); // 30
或者先 x
后 y
:
add10 = add(10); result = add10(20); console.log(result); // 30
让我们回过头来看最后一个例子。 add10 是用一个参数调用 add 的结果。并控制台中输出它。
add10 是一个函数,它接受一个 y 并返回 x + y。在你提供 y 之后,它会马上计算并返回你所要的最终结果。
更高的可重用性
高阶函数的最大好处可能是更高的可重用性。没有它,JavaScript 数组的主要方法 —— map
,filter
和 reduce
将不存在!
这是一个用户列表。我们将对他们的信息进行一些计算。
users = [{ name: 'Yazeed', age: 25 }, { name: 'Sam', age: 30 }, { name: 'Bill', age: 20 }];
Map
如果没有高阶函数,我们需要用循环来模仿 map
的功能。
getName = (user) => user.name; usernames = []; for (let i = 0; i <p>或者我们可以这样做!</p><pre class="brush:php;toolbar:false">usernames = users.map(getName); console.log(usernames); // ["Yazeed", "Sam", "Bill"]
Filter
在没有高阶函数的世界中,我们仍然需要循环来重新实现 filter
각 숫자에 대해 filter
에 의해 호출되며 반환 값 true
또는 false
를 사용하여 숫자를 유지할지 아니면 버려야 할지 결정합니다. .
반환 함수
startsWithB = (string) => string .toLowerCase() .startsWith('b'); namesStartingWithB = []; for (let i = 0; i <h4> <code>add</code>에는 두 개의 매개변수가 필요하지만 한 번에 모두 필요하지는 않습니다. 이는 <code>x</code>만 취하고 <code>y</code>만 취하는 함수를 반환하는 함수입니다. JavaScript를 사용하면 함수가 문자열, 숫자, 부울과 마찬가지로 반환 값이 될 수 있기 때문입니다. </h4><p>원하는 경우 <code>x</code> 및 <code>y</code>를 즉시 제공하고 </p><pre class="brush:php;toolbar:false">namesStartingWithB = users .filter((user) => startsWithB(user.name)); console.log(namesStartingWithB); // [{ "name": "Bill", "age": 20 }]🎜또는
x
를 먼저 두 번 호출한 다음 를 호출할 수 있습니다. >y
: 🎜rrreee🎜마지막 예시로 돌아가겠습니다. add10은 하나의 인수로 add를 호출한 결과입니다. 그리고 콘솔에 출력합니다. 🎜🎜

map
, filter
및 reduce
는 존재하지 않았을 것입니다! 🎜🎜사용자 목록입니다. 우리는 그들의 정보에 대해 몇 가지 계산을 할 것입니다. 🎜rrreee🎜Map🎜🎜고차 함수가 없으면 루프를 사용하여 map
의 기능을 모방해야 합니다. 🎜rrreee🎜 아니면 우리가 할 수 있어요! 🎜rrreee🎜Filter🎜🎜고차 함수가 없는 세상에서도 filter
의 기능을 다시 구현하려면 루프가 필요합니다. 🎜rrreee🎜 아니면 우리가 할 수 있어요! 🎜rrreee🎜Reduce🎜🎜예, 감소합니다... 고차 함수 없이는 이렇게 많은 멋진 것들을 얻을 수 없습니다!!위 내용은 JavaScript 고차 함수에 대한 자세한 소개(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

Python과 JavaScript는 커뮤니티, 라이브러리 및 리소스 측면에서 고유 한 장점과 단점이 있습니다. 1) Python 커뮤니티는 친절하고 초보자에게 적합하지만 프론트 엔드 개발 리소스는 JavaScript만큼 풍부하지 않습니다. 2) Python은 데이터 과학 및 기계 학습 라이브러리에서 강력하며 JavaScript는 프론트 엔드 개발 라이브러리 및 프레임 워크에서 더 좋습니다. 3) 둘 다 풍부한 학습 리소스를 가지고 있지만 Python은 공식 문서로 시작하는 데 적합하지만 JavaScript는 MDNWebDocs에서 더 좋습니다. 선택은 프로젝트 요구와 개인적인 이익을 기반으로해야합니다.

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

실제 세계에서 JavaScript의 응용 프로그램에는 서버 측 프로그래밍, 모바일 애플리케이션 개발 및 사물 인터넷 제어가 포함됩니다. 1. 서버 측 프로그래밍은 Node.js를 통해 실현되며 동시 요청 처리에 적합합니다. 2. 모바일 애플리케이션 개발은 재교육을 통해 수행되며 크로스 플랫폼 배포를 지원합니다. 3. Johnny-Five 라이브러리를 통한 IoT 장치 제어에 사용되며 하드웨어 상호 작용에 적합합니다.

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

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

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

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

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
