文章更新中...
函数式编程用简短、紧凑的代码完成工作,代码风格可读性强,更突出所解决的问题。
命令式编程和声明式编程
// 将数组所有项加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进行调用
网友评论