javascript的纯函数

javascript纯函数

1.什么是纯函数?

一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数。

用人类的话讲,纯函数的特性:
1.调用这个函数,只要我参数不变,这个函数的值始终不改变。
2.数值,对象使用这个函数,使用前后,自身的值不会发生变化,这就是指的副作用。也有人说是同输入同输出,我传入什么,掉用完,传出的就是什么。

2.例子 :

        let a = 0;
        const fun = (val)=>{
            return val + a;
        }
        let b = 1;
        console.log(fun(b))  // 1
        a=1
        console.log(fun(b))  // 2   

这个例子就不是一个纯函数,因为当a的值发生改变,函数输出的结果改变了,它不符合纯函数的第一条特性。

const a = 1
const foo = (obj, b) => {
  obj.x = 2
  return obj.x + b
}
const counter = { x: 1 }
foo(counter, 2) // => 4
counter.x // => 2

同样的道理这个例子虽然没有其它变量干扰函数的返回值,但是counter.x的值在调用函数之后发生了变化。
这里写图片描述
再举个正确的例子吧,下面函数便是一个纯函数!

         let fun = (val) =>{
            console.log(typeof(val))
            if(typeof(val)==='number'){
                return val *val;
            }else{
                return 0;
            }
        }
        console.log(fun(2))  // 4

生活不易,如果觉得这篇文章帮助到你了,给小编个鼓励吧!
这里写图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值