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

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

猜你喜欢

转载自blog.csdn.net/qq_37339364/article/details/82229986
今日推荐