JavaScript를 배우신다면 아마도 고차 함수라는 용어를 접해 보셨을 것입니다. 복잡해 보이지만 그렇게 복잡하지는 않습니다. 함수형 프로그래밍 언어인 JavaScript를 사용하면 함수 기반 프로그래밍에서 중요한 이러한 함수를 사용할 수 있습니다.
함수형 프로그래밍은 기본 구성 요소로 함수를 생성하고 사용하는 것을 의미합니다. 이 접근 방식에서는 함수를 다른 함수에 매개 변수로 전달하거나 결과로 반환할 수 있습니다. 이러한 사고방식은 체계적이고 효율적인 코드 작성을 가능하게 합니다.
JavaScript는 함수를 '일급 시민'으로 취급합니다. 이는 함수가 객체, 즉 변수에 할당되고, 매개변수로 전달되고, 숫자나 문자열과 같은 다양한 컨텍스트에서 사용될 수 있는 특정 유형의 객체라는 것을 의미합니다.
예:
function pozdrav() { console.log('Zdravo, svete!'); } pozdrav(); // Ispisuje 'Zdravo, svete!' // Dodavanje svojstva funkciji pozdrav.jezik = 'srpski'; console.log(pozdrav.jezik); // Ispisuje 'srpski'
JavaScript에서는 함수를 변수에 할당할 수 있습니다.
const kvadrat = function(x) { return x * x; }; console.log(kvadrat(5)); // Ispisuje 25
일급 함수의 주요 특징 중 하나는 이를 다른 함수에 인수로 전달할 수 있다는 것입니다.
function formalniPozdrav() { console.log("Kako ste?"); } function neformalniPozdrav() { console.log("Šta ima?"); } function pozdravVrsta(vrsta, formalan, neformalan) { if (vrsta === 'formalan') { formalan(); } else if (vrsta === 'neformalan') { neformalan(); } } pozdravVrsta('neformalan', formalniPozdrav, neformalniPozdrav); // Ispisuje 'Šta ima?'
고차 함수는 다른 함수를 인수로 받아들이거나 결과로 반환하는 함수입니다. 이를 통해 더욱 우아하고 간결한 코드 작성이 가능해졌습니다. 예로는 map, filter, Reduce 등이 있습니다.
메서드map은 기존 배열의 각 요소에 대해 함수를 호출하여 새 배열을 생성합니다.
지도 방법 없음:
const arr1 = [10, 20, 30, 40, 50]; const arr2 = []; for (let i = 0; i < arr1.length; i++) { arr2.push(arr1[i] * 2); } console.log(arr2); // [20, 40, 60, 80, 100]
지도 방법 사용:
const arr1 = [10, 20, 30. 40, 50]; const arr2 = arr1.map(item => item * 2); console.log(arr2); // [20, 40, 60, 8-, 100]
필터는 주어진 조건을 만족하는 모든 요소로 새 배열을 만듭니다.
const osobe = [ { ime: 'Pera', godine: 13 }, { ime: 'Mika', godine: 18 }, { ime: 'Laza', godine: 64 }, { ime: 'Ana', godine: 10 }, ]; const punoletni = osobe.filter(osoba => osoba.godine >= 18); console.log(punoletni); // [ { ime: 'Mika', godine: 18 }, { ime: 'Laza', godine: 64 } ]
reduce는 배열의 각 구성원에 대해 함수를 수행하고 고유한 값을 반환합니다.
축소 예시:
const arr = [4, 6, 10, 5, 25]; const suma = arr.reduce((akumulator, vrednost) => akumulator + vrednost, 0); console.log(suma); // 50
JavaScript에 내장된 지도 메소드가 없다고 상상해 보세요. 직접 만들 수도 있습니다:
function mapiraj(arr, fn) { const noviNiz = []; for (let i = 0; i < arr.length; i++) { noviNiz.push(fn(arr[i])); } return noviNiz; } const duzine = mapiraj(['JavaScript', 'Python'], item => item.length); console.log(duzine); // [10, 6]
고차 함수는 JavaScript에서 코드의 유연성과 단순성을 가능하게 합니다. 이러한 기능을 사용하면 코드가 더욱 간결해지고 체계화되며 유지 관리가 쉬워집니다.
위 내용은 JavaScript의 고차 함수 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!