JavaScript之函数式编程

文章更新中...

函数式编程用简短、紧凑的代码完成工作,代码风格可读性强,更突出所解决的问题。

命令式编程和声明式编程

// 将数组所有项加1
var oriArr = [1, 20, 3, 4, 5]
var result

// 命令式风格
function addOne(oriArr) {
    var newArr = []
    for (var i = 0; i < oriArr.length; i++) {
        newArr.push(oriArr[i] + 1)
    }
    return newArr
}
result = addOne(oriArr)
console.log(result)

// 声明式风格
var result = oriArr.map((item, index) => { return item + 1 })
console.log(result)

从代码中两种风格中可以看出,命令式关注怎么做,函数体部分代码会较多,一眼看去就是一个循环,函数想做什么不太突出。声明式突出做什么,突出业务代码,抽象实现过程。

函数式编程相关概念

First-class Function

百度百科:是指在程序设计语言中,函数被当作头等公民。这意味着,函数可以作为别的函数的参数、函数的返回值,赋值给变量或存储在数据结构中。

Pure Function

1、幂等:输入决定输出
2、模块化
3、方便测试

High Order Function

函数作为参数或者返回值

Currying

通过组合实现复杂功能,将复杂的逻辑切分成细节,方便发现问题,使得函数可以直接通过map进行调用

Functor
Monad
IO
Maybe
Either

你可能感兴趣的:(JavaScript之函数式编程)