你不知道的js——纯函数及其作用(函数式编程思想)

你不知道的js——纯函数及其作用(函数式编程思想)

首先关于纯函数:人话是: 不依赖、不修改其作用域之外的函数 (纯函数一定要有return)
写一个简单的纯函数,例如:

function(a,b){
    return a+b;
}

在上一段代码:

var arr = [{name:'tan'}];
function add(_arr){
    var obj = {myLoveName:'li'};
    var newArr[];
    var len = _arr.length;
    for(var i = 0;i<len;i++){
        newArr[i] = deepClone(arr[i]);//deepClone()是自写的一个深度克隆函数,具体作用及源码见  https://blog.csdn.net/qq_39403733/article/details/83685468
    }
    newArr.push(obj);
    return newArr;
}
var newArr = add(arr);
newArr.push({name:hello});

在这段代码中,add()就是一个纯函数。arr的值全部给了newArr,并且在外部修改newArr的值,arr并没有收到影响。
那么举了这么多例子,纯函数究竟有什么作用呢?

说作用之前,不得不提一下Bug守恒定律:一旦代码量达到一定程度,将不可避免的包含某种未知bug,甚至当清除了这个bug的时候,又会产生新的未知bug.
在JavaScript中可以很容易地创建全局变量,这些变量在很多的函数中都能访问修改,这也是导致发生bug的常见原因。并且难以调试
此时,纯函数就能极大地降低bug出现的概率。因为
①纯函数可以很容易的进行单元测试(不需要考虑上下文,只考虑输入输出)
②纯函数具有健壮性,改变执行次序并不会对系统造成影响,一次纯函数可以并行执行。
③更好的管理状态,是可预测性增强,降低代码管理的难度。
此外,纯函数更大的威力是在高级框架之中:组件化开发状态共享。(例如vue/React)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值