美文网首页
js高阶函数

js高阶函数

作者: 东冶丶 | 来源:发表于2021-12-31 10:24 被阅读0次
什么是函数式编程

函数式是一种编程形式,你可以将函数作为参数传递给其他函数,并将它们作为值返回。 在函数式编程中,我们以函数的形式思考和编程。

JavaScript,Haskell,Clojure,Scala 和 Erlang 是部分实现了函数式编程的语言。
JavaScript 中,函数是一种特殊类型的对象。 它们是 Function objects。

JavaScript中函数是对象
function greeting() {
    console.log('great')
}
greeting.lang = "王狗蛋";
console.log(greeting.lang);//王狗蛋
将函数赋值给变量并进行传递
const number = x => x * x;
console.log(number(5));//25
const newNumber  = number;
console.log(newNumber(6));//36
将函数作为参数传递
function formalGreeting() {
    console.log("How are you?");
}
function casualGreeting() {
    console.log("What's up?");
}
function greet(type, greetFormal, greetCasual) {
    if (type === 'formal') {
        greetFormal();
    } else if (type === 'casual') {
        greetCasual();
    }
}
        // prints what's up?"
greet('casual', formalGreeting, casualGreeting);

简单来说,高阶函数是一个接收函数作为参数或将函数作为输出返回的函数。

Array.prototype.map
const arr = [1, 2, 3, 4, 5];
let newArry = arr.map(x => x * 3);
console.log(newArry)
Array.prototype.filter
const arr = [1, 2, 3, 4, 5];
let newArry = arr.filter(x => x > 3);
console.log(newArry)
Array.prototype.reduce
arr.reduce(callback,[initialValue])
callback (执行数组中每个值的函数,包含四个参数
    1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
    2、currentValue (数组中当前被处理的元素)
    3、index (当前元素在数组中的索引)
    4、array (调用 reduce 的数组)
initialValue (作为第一次调用 callback 的第一个参数。)

var  arr = [1, 2, 3, 4];
var sum = arr.reduce(function(prev, cur, index, arr) {
    console.log(prev, cur, index);
    return prev + cur;
},0) //注意这里设置了初始值
console.log(arr, sum);

如果没有提供initialValue,reduce 会从索引1的地方开始执行 callback 方法,跳过第一个索引。如果提供initialValue,从索引0开始。

相关文章

  • [JS函数] (Array)の高阶函数

    JS函数 高阶函数 高阶函数英文叫Higher-order function。那么什么是高阶函数? JavaScr...

  • 【JS】高阶函数与函数柯里化

    高阶函数 至少满足以下条件的函数: 接受一个或多个函数作为输入 输出一个函数JS高阶函数浅析[https://gi...

  • 高级语法

    高阶函数:以其他函数作为其参数或者返回值的函数。跟JS一样,python提供了部分内置高阶函数 匿名函数:pyth...

  • 高阶组件

    高阶函数:接受一个或多个函数并返回一个函数 JS中,array的map、filter、reduce等方法就是高阶函...

  • python函数式编程

    高阶函数 把函数作为参数传入,这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。与js相似,与c#中...

  • js高阶函数

    一、函数作为参数传递 1、回调函数 ajax异步请求 2、Array.prototype.sort 二、函数作为返...

  • JS高阶函数

    1.map: var arr=[1,2,3,4]; arr.map(function_name); 这传入的方法会...

  • js高阶函数

    bind可以利用此种特性方便代码重用,如下,可以不同的页面中只需要配置某几项,前面几项固定的配置可以选择用bind...

  • JS 高阶函数

    最近在学习函数式编程,整个 team 都在啃一本叫《Mostly adequate guide》的函数式编程教材,...

  • js高阶函数

    高阶函数将其他函数作为参数或将返回函数作为结果。它们提供了JavaScript中清晰易懂的语法。这将帮助你以更少的...

网友评论

      本文标题:js高阶函数

      本文链接:https://www.haomeiwen.com/subject/ytkiqrtx.html