函数式编程简介
js 函数式编程
函数式的思想, 就是不断地用已有函数, 来组合出新的函数。
函数式编程具有五个鲜明的特点:
函数是”第一等公民”
指的是函数与其他数据类型一样,处于平等地位只用”表达式“,不用”语句”
“表达式”(expression)是一个单纯的运算过程,总是有返回值;
“语句”(statement)是执行某种操作,没有返回值。没有”副作用”
指的是函数内部与外部互动(最典型的情况,就是修改全局变量的值),
产生运算以外的其他结果。不修改状态
变量往往用来保存”状态”(state)。不修改变量,意味着状态不能保存在变量中,
函数式编程使用参数保存状态引用透明
指的是函数的运行不依赖于外部变量或”状态”,只依赖于输入的参数,任何时候只要参数相同,
引用函数所得到的返回值总是相同的
函数式编程的意义:
1. 代码简洁,开发快速
2. 接近自然语言,易于理解
3. 更方便的代码管理
4. 易于”并发编程”
5. 代码的热升级
为什么用函数式编程
在 JavaScript 中,函数本身为一种特殊对象,属于顶层对象,
不依赖于任何其他的对象而存在,因此可以将函数作为传出 / 传入参数,
可以存储在变量中,可以做一切其他对象可以做的事情。
自调用函数(递归—自己调用自己)实际上是高阶函数的一种形式。
特点
- Vue3 React16.8 全面化函数式的推动
- 函数式编程可以使得代码单元相对更加独立 - tree shaking 过程更顺畅,更方便做 UT
- 减少了对 this 的依赖,减轻了开发人员对于指向问题的困惑
- js 天生友好函数式:ramda、loadsh