# 内容介绍
- 为什么要学习函数编程以及什么是函数式编程
- 函数式编程的特性(纯函数、柯里化、函数组合等)
- 函数式编程的应用场景
- 函数式编程库
Lodash
# 为什么要学习函数式编程
函数式编程是非常古老的一个概念,早于第一台计算机的诞生,函数式编程的历史。
那我们为什么现在还要学函数式编程?
- 函数式编程是随着 React 的流行受到越来越多的关注
- Vue 3也开始拥抱函数式编程
- 函数式编程可以抛弃
this
- 打包过程中可以更好的利用
tree shaking
过滤无用代码 - 方便测试、方便并行处理
- 有很多库可以帮助我们进行函数式开发:
lodash
、underscore
、ramda
# 什么是函数式编程
函数式编程(Functional Programming)是一种编程范式,我们常听说的编程范式还有面向过程编程、面向对象编程。
面向对象编程的思维方式:把现实世界中的事物抽象成程序世界中的类和对象,通过封装、继承、多态来演示事物之间的联系。
函数式编程的思维方式:把现实世界中的事物和事物之间的联系抽象到程序世界(对运算结果进行抽象)
程序的本质:根据输入通过某种运算获得相对应地输出,程序开发过程中会涉及很多有输入和输出的函数
x -> f -> y
(x 通过 f 运算得到 y) 也就是函数式编程中的函数.y = f(x)
函数式编程中的函数指的不是程序中的函数(方法),而是数学中的函数映射关系,例如
y = sin(x)
x和y的关系相同的输入始终要得到相同的输出(纯函数)
函数式编程用来描述数据(函数)之间的关系
函数式编程用来描述数据(函数)之间的映射
// 非函数式
let num1 = 2;
let num2 = 3;
let sum = num1 + num2;
console.log(sum);
// 函数式
function add(num1, num2) {
return num1 + num2;
}
let sum = add(2, 3);
console.log(sum);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14