欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

js 纯函数

程序员文章站 2024-02-08 10:34:16
...

js 纯函数
纯函数特点:
1、函数f,对于输入x产生一个输出y=f(x)。
2、纯函数,输入x经过function处理之后输出y 在执行的过程中不会影响到外界的值。
3、纯函数的定义:对于相同的输入 永远会的到相同的输出,而且没有任何的副作用,也不依赖外部环境的状态。
4、纯函数指不依赖,不修改自己作用域以外的值。

举个栗子

<script>
            var num = 18;
            function compare(x) {
                return x > num;
            }
            compare(10);//不是一个纯函数
    </script>

上述例子就不是一个纯函数,因为该函数要依赖全局作用域下的变量。
优化:变为纯函数

<script>
        var num = 18;
        function compare(x, y) {
            return x > y;
        }
        compare(10, num);
    </script>

在举个栗子

  <script>
         var arr = [];
        function add(_arr){
            var a = 123;
            _arr.push(a);
            return _arr;
        }
        add(arr);
        console.log(arr);//[123]   不是一个纯函数
    </script>

上述例子就不是一个纯函数,因为该函数改变了原数组。
优化:

  <script>
        var arr = [];
        function add(_arr){
            var newArr = [];
            var a = 123;
            for(var i = 0;i<_arr.length;i++){
                newArr.push(_arr[i]);
            }
            newArr.push(a);
            return newArr;
        }
        var newArr = add(arr);
        console.log(newArr); // [123]
        console.log(arr); // []
    </script>

纯函数优点:
1.js非常容易创建全局变量,在所有的函数中都可以被访问到
2.纯函数非常容易做单元测试,不需要考虑到上下文环境,只需要考虑输入和输出
3.纯函数不那么复杂,更容易调试,易于组合,易于并行化。

上一篇: js 纯函数编程

下一篇: js 纯函数