Maison >interface Web >js tutoriel >Comprendre les fonctions d'ordre supérieur en JavaScript
Si vous apprenez JavaScript, vous avez probablement rencontré le terme Fonctions d'ordre supérieur. Même si cela semble compliqué, ce n’est pas si compliqué. JavaScript, en tant que langage de programmation fonctionnel, permet l'utilisation de ces fonctions, qui sont cruciales dans la programmation basée sur les fonctions.
La programmation fonctionnelle implique la création et l'utilisation de fonctions comme éléments de base principaux. Dans cette approche, les fonctions peuvent être transmises en tant que paramètres à d'autres fonctions ou renvoyées en tant que résultats. Cette façon de penser permet une écriture de code organisée et efficace.
JavaScript traite les fonctions comme des « citoyens de première classe ». Cela signifie que les fonctions sont des objets : un type spécifique d'objet qui peut être attribué à des variables, passé en tant que paramètres et utilisé dans différents contextes, tels que des nombres ou des chaînes.
Exemple :
function pozdrav() { console.log('Zdravo, svete!'); } pozdrav(); // Ispisuje 'Zdravo, svete!' // Dodavanje svojstva funkciji pozdrav.jezik = 'srpski'; console.log(pozdrav.jezik); // Ispisuje 'srpski'
En JavaScript, des fonctions peuvent être affectées à des variables :
const kvadrat = function(x) { return x * x; }; console.log(kvadrat(5)); // Ispisuje 25
L'une des principales caractéristiques des fonctions de première classe est la possibilité de les transmettre comme arguments à d'autres fonctions :
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?'
Fonctions d'ordre supérieur sont des fonctions qui acceptent d'autres fonctions comme arguments ou les renvoient comme résultats. Cela permet une écriture de code plus élégante et concise. Les exemples incluent les méthodes map, filter et reduction.
map crée un nouveau tableau en appelant une fonction sur chaque élément du tableau existant :
Aucune méthode de cartographie :
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]
Avec méthode cartographique :
const arr1 = [10, 20, 30. 40, 50]; const arr2 = arr1.map(item => item * 2); console.log(arr2); // [20, 40, 60, 8-, 100]
crée un nouveau tableau avec tous les éléments qui satisfont à la condition donnée :
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 exécute une fonction sur chaque membre du tableau et renvoie une valeur unique :
Exemple avec réduire :
const arr = [4, 6, 10, 5, 25]; const suma = arr.reduce((akumulator, vrednost) => akumulator + vrednost, 0); console.log(suma); // 50
Imaginez si JavaScript n'avait pas de méthode de cartographie intégrée. Nous pouvons le créer nous-mêmes :
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]
Les fonctions d'ordre supérieur permettent la flexibilité et la simplicité du code en JavaScript. En utilisant ces fonctionnalités, notre code devient plus concis, organisé et maintenable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!