函数式编程是一种编程范式或者说风格, 在这种范式下开发者更关注不变性, 函数是一等公民, 引用透明性, 以及纯函数性等性质....因此, 大部分函数式编程语言看起来都十分的"数学"(译者: 比如Haskell, 实际上JS也满足函数式编程的要求). 好消息是, 并不需要通过专门使用函数式编程语言来引入函数式编程范式....函数式编程的核心原则
既然我们已经讨论了函数式编程是什么, 现在让我们来看看函数式编程背后的核心原则
纯函数 Pure functions
我喜欢将函数比作机器 - 它们接受一组输入(参数), 并且在之后输出一些东西...相反, 使用只有输入与输出, 并且变量仅存在函数内部的函数, 将会使得调试debug的过程更为简单.
此外, 函数应该遵循引用透明性原则, 这意味着, 对于相同的输入, 函数总会输出相同的输出....对于两次调用, 给与相同的输入, 其结果是不同的.
// 非引用透明性的
Math.random();
// 0.1406399143589343
Math.random();
// 0.26768924082159495