JavaScript函数式编程探索与思考

May 27, 2016

1881

最近一段时间,函数式编程又开始活跃起来了。函数式编程是一种编程范式,它将电脑运算视为数学上的函数计算,并且避免使用程序状态以及可变数据。函数式编程强调程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。

今天我试图用js去梳理函数式编程相关的一些知识。文中代码风格采用Standard,使用ES6语法。

函数式编程初试

首先我们来看一个例子,计算数组元素的和。

我们可以快速用命令式来实现,代码如下:

const arr = [1, 2, 3, 4]
let sum = 0

for (let i = 0, len = arr.length; i < len; i++) {
  sum += arr[i]
}

利用ES5种提供的reduce方法,代码如下:

const arr = [1, 2, 3, 4]
let sum = arr.reduce((x, a) => x + a)

可以看到,reduce的函数式代码与前面命令式代码解决问题的方式和角度是完全不同的。命令式需要关心所有的过程,如何遍历以及如何组织结果数据。而reduce由于将遍历、操作以及结果数据的组织的过程封装至Array中,我们真正关心的逻辑就是reduce的参数里的匿名函数中的过程。

Wen's Blog

文章归档 » 文章标签 » 博主:吴文伟,Web开发爱好者,专注于前端开发,该博客用于记录和分享平时遇到的一些问题以及知识。

订阅

联系方式

链接