函数式编程

函数式编程的三大特征:

  • 纯函数
  • 不可变值
  • 函数是一等公民

纯函数

  • 相同输入总是获得相同输出
  • 不会产生副作用

纯的本质:有且仅有显式数据流。数据的来源和出口严格约束。

数据仅以入参形式传入,仅以返回值形式输出。
不直接通过作用域链依赖外部数据,不直接在函数内部修改外部数据。

TIP

非纯的特征是具有传递性的。函数 A 调用了一个非纯函数,则函数 A 也为非纯函数。

TIP

只要函数跟外部环境发生了交互,即产生了副作用。

常见副作用:

  • DOM 操作
  • LOG 打印
  • 网络请求
  • 定时器
  • 监听器
  • 等等

不可变值

原始数据类型的数据皆为不可变值,能够变化的是引用类型对象。

为了确保引用类型对象数据不可变,诞生了 Immer 等解决方案。

函数是一等公民

  • 函数可以被赋值给一个变量
  • 函数可以作为一个函数的入参
  • 函数可以作为一个函数的返回值

参考

Last Updated:
Contributors: Vsnoy