为什么学习函数式编程
-
函数式编程随着 React 的流行受到越来越多的关注
-
Vue 3 也开始使用函数式编程
-
打包过程中可以更好的利用 tree shaking 剔除无用的代码
-
方便测试、并行处理等
函数式编程库
- lodash、underscore、ramda
什么是函数式编程
函数式编程是编程范式之一,与面向过程编程、面向对象编程是并列关系
思维方式
-
面向对象编程:把现实世界的事物抽象成程序世界中类和对象,通过封装、继承和多态来演示事物、事件之间的联系
-
函数式编程:把现实世界的事物与事物之间的联系抽象到程序世界中
对运算过程进行抽象-
程序的本质:根据输入通过某种运算获得相应的结果,在实际开发中就涉及到很多有输入和输出的函数
-
函数式编程中的函数指的不是程序中的函数(方法),而是数学中的函数,即映射关系。例如:
y = sin (x),y 是结果(输出)、sin 是运算方式(函数)、x 即为输入 -
当一个函数具有 相同的输入始终要得到相同的输入 特性时,被称之为纯函数
-
总结
函数式编程就是用来描述数据(函数)的映射,或者说 函数式编程就是对运算过程的抽象
// 非函数式
let num1 = 2
let num2 = 3
let sum = num1 + num2
console.log(sum)
// 函数式
function add (n1, n2) {
return n1 + n2
}
let sum = add(2, 3)
console.log(sum)
当使用函数式时我们需要对运算过程进行抽象,上述代码运算过程为 对 2 个数相加并返回它们的和。此时我们抽象了一个 add 函数。