JavaScript 函数式编程
函数式编程风格起源于 20 世纪 30 年代 lambda
演算的发明。函数自 17 世纪诞生以来,一直是作为微积分的一部分而存在的。函数可以作为函数的参数传递,还可以作为函数的执行结果被返回。更复杂的函数被称为高阶函数,它可以精确的控制函数,既可以将函数当作参数传递,也可以将函数作为执行结果返回,或者二者兼而有之。在 20 世纪 30 年代,Alonzo Church 在普林斯顿大学用高阶函数做实验时发明了 lambda
演算。
20 世纪 50 年代初,John McCarthy 借鉴了 lambda
演算的概念,并将它应用到一门新的名为 Lisp 的编程语言上。Lisp 实现了高阶函数的概念,并将函数作为第一类成员或者第一类公民。一个函数被当作第一类成员时,它不仅可以被声明为一个变量,而且可以被当作函数参数传递。这些函数甚至可以作为函数的执行结果被返回。
什么是函数式编程
JavaScript 可以进行函数式编程,因为 JavaScript 中的函数就是第一类公民。这意味着变量可以做的事情函数同样也可以。ES6 标准中还添加了不少语言特性,可以帮助我们更充分地使用函数式编程技术,其中包括箭头函数、Promise 对象和扩展运算符等。