JavaScript进阶-函数式编程-概念

159 阅读2分钟

为什么学习函数式编程

  1. 函数式编程随着 React 的流行受到越来越多的关注

  2. Vue 3 也开始使用函数式编程

  3. 打包过程中可以更好的利用 tree shaking 剔除无用的代码

  4. 方便测试、并行处理等

函数式编程库

  • 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 函数。