# 为什么学习函数式编程

函数式编程是一个非常古老的概念。

为什么需要学习函数式编程?

  • 函数式编程随着 React 的流行受到越来越多的关注
    • 高阶组件运用了高阶函数的特性
    • Redux 使用了函数式编程的思想
  • Vue3 也开始拥抱函数式编程
  • 函数式编程可以抛弃烦人的 this 问题
  • 打包过程可以更好的利用 tree shaking 过滤无用代码
  • 方便测试,方便并行处理等
  • 有很多库可以方便我们进行函数式开发:Lodash,underscore

# 什么是函数式编程

函数式编程(Functional Programming),FP是一种编程范式,(编程风格)。常说的编程范式还有面向过程编程,面向对象编程。

  • 面向过程编程:按照步骤一步一步实现我们需要的功能。
  • 面向对象编程:将现实世界中的事物抽象成程序世界中的类和对象,通过封装,继承,多态来实现事物之间的联系,交互。
  • 函数式编程:把现实世界事物之间的联系抽象到程序世界,(对运算过程进行抽象)
    • 程序的本质:根据输入通过某种运算得到相应的输出 y=f(x)
    • 函数式编程中的函数值的不是程序中的函数(方法),而是数学中的函数即映射关系。例如 y=f(x),y和x的映射关系
    • 相同的输入始终要得到相同的输出(纯函数)
    • 函数式编程用来描述 数据函数 之间的映射关系,是对运行过程进行的抽象
// 面向过程编程
let n1 = 1;

let n2 = 2;

let n3 = n1 + n2;

console.log(n3)

// 函数式编程
// 函数可以重用,纯函数实现细粒度的功能
function add(n1, n2) {
    return n1 + n2;
}

let sum = add(n1, n2);
console.log(sum)
更新时间: 6/2/2020, 12:34:44 PM