js-纯函数和副作用

前言

涉及到函数式编程的一些概念

什么是纯函数和副作用

  • 1)函数体内不改变传入的参数值,而是return新的值;

  • 2)函数传入固定的参数,一定返回固定的值;

  • 3)没有副作用。

    1
    2
    3
    4
    5
    var b = 0;
    function fun(a){
    b++; //副作用语句
    return a + 1;
    }

    这个函数不是纯函数,因为它仅仅满足了(1)、(2)的规则,但是有副作用

  • 纯函数是一个有明确return的函数,纯函数不改变任何外部的值;
    有副作用的函数在改变其他位置的值,没有显著的return词语。