纯函数
什么是纯函数呢,我是在研究函数式编程时候发现的一个东西,想要知道什么是函数式编程,纯函数就是他学习的第一步。
那么就带着大家来分享一下什么是纯函数。
1-纯函数的概念
纯函数也是函数,只是相对普通的函数稍微特别了一点,概念如下:
纯函数是对相同输入返回相同输出的函数,不依赖(包含)任何外部变量,所以也不会产生改变外部环境变量的副作用。
1.1重点
通过上述概念分析得到他的重点主要集中在下面两条
1.函数的返回结果只依赖于它的参数
2.函数执行过程中没有副作用
1.2函数的返回结果只依赖于它的参数
首先第一条注意的地方。这里给大家上一段熟悉的代码,我们在js基础的课程中使用过一个求1-100的累加和,代码如下:
var start = 1;
var end = 2;
var sum = 0;
function fnsum(a,b){
for(var i = a; i <= b; i++){
sum += i
}
return sum
}
sum = fnsum(start,end)// 这里返回的值就是1-100之间的和。
这个代码看上去没什么问题,但是只能运行一次。当我们第一次运行的时候,使用到了一个全局变量sum来记录当前循环的总和,确实能够正常输出结果,但是当我们第二次运行的时候,这个sum并不是初始值0,而是5500。这个时候第二次运行的结果就被sum这个全局变量影响到了。
这就不是一个纯函数。想要拿到纯函数稍微改造一下:
var start = 1;
var end = 2;
function