什么是纯函数

相同的输入得到相同的输出(映射关系),不依赖且不影响外部环境也不产生任何副作用。

副作用 只要跟函数外部环境发生了交互就是副作用 例如:发送数据请求、改变数据、console.log、DOM操作、数据储存等等

函数的单一职责原则 kiss 原则 Keep it Simple and Stupid
延续功能:

  • 收集参数
  • 分类参数

    函数为参数的情况

    从功能的角度,抽离一部分业务逻辑,为了实现函数的单一职责原则

    纯函数优点

  • 可移植

  • 可测试
  • 引用透明
  • 并行执行 (没有竞争态存在)
  • 可缓存性

    纯函数真正用法

  • 可提纯就提纯,不能提纯不强求,目标是保证代码易读易维护。