# JavaScript 中的函数式编程概念

函数式编程 是一种"编程范式"(programming paradigm),它不会处理状态, 降低了软件中的复杂性, 使得行为更加可以预测, 代码的可读性更强,增加程序的复用性。

函数式编程引入一些属性或者操作方式

  • 纯函数
    • 相同的输入产生相同的输出 (确定性)
    • 不改变它作用域之外的状态 (无副作用) 或者 依赖的作用域之外的变量是不可变的
  • 高阶函数
  • 回调函数
  • 递归
  • 闭包
  • 函数合成
  • 柯里化