如果您正在学习 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 对数组的每个成员执行函数并返回唯一值:
reduce 示例:
const arr = [4, 6, 10, 5, 25]; const suma = arr.reduce((akumulator, vrednost) => akumulator + vrednost, 0); console.log(suma); // 50
想象一下如果 JavaScript 没有内置的 map 方法。我们可以自己创建:
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中文网其他相关文章!