纯函数是这样一种函数,即相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用
通俗来讲就两个要素:
1.相同的输入,一定会得到相同的输出。
2.不会有“触发事件”、更改外部输入参数、依赖外部变量数据、打印 log 等等副作用。
/*不是纯函数,因为同样的输入,输出结果不一致*/
function a( count ){
return count + Math.random();
}
/*不是纯函数,因为外部的 arr1 被修改了*/
function b( arr ){
return arr.push(1);
}
let arrl =[1, 2, 3];
b(arr1);
console.log(arr1); //[1,2, 3, 1]
/*不是纯函数,因为依赖了外部的 X*/
let x = 1;
function c( count ){
return count + x;
}