nitroge / memories

日常学习累积的点点滴滴滴滴点点
7 stars 0 forks source link

函数式编程 #21

Open nitroge opened 2 years ago

nitroge commented 2 years ago

函数式编程

将程序分解为一些更可重用、更可靠且更易于理解的部分,然后将他们组合起来,形成一个更易推理的程序整体。

// 命令式编程
var arr = [1, 2, 3, 4];
var newArr = [];
for(let i = 0; i < arr.length; i++){
newArr.push(arr[i] + 1);
}
// 函数式编程
var add = x => x+1;
var createArr = function (arr, fn) {
var newArr = [];
for(let i = 0; i < arr.length; i++){
newArr.push(fn(arr[i]));
}
return newArr;
}

纯函数

纯函数可以保证代码的稳定性,因为相同的输入永远会得到相同结果。不纯的函数可能会带来副作用。

函数副作用

调用函数时除了返回函数值之外,还对主调用函数产生附加的影响,比如修改全局变量或者外部变量,或者修改参数。这可能会带来难以查找的问题并降低代码的可读性。

减少副作用方法: