ES6 函数的参数

105 阅读1分钟

ES6之前函数时无法给参数设置默认值的,而ES6支持了这个特性

function fn(name,
        age = 100,
        arr = [],
        obj = {},
        callback = function () {}){function pi() {
            return 3.14;
        }

        function fn(r, p =pi()){  //pi()返回值交给p
            console.log(r * r * p);
        }
        fn(10);

            //参数1是必须传传递
            //其余参数有默认值,可选传递
            console.log(arr);
            console.log(obj);
            console.log(callback('callback'));
        }

        fn('111',200,[1,2,3],{key : 1 }, function (info) {
            return info;
        });

函数参数的默认值,也可以是另一个函数的返回值

function pi() {
            return 3.14;
        }
        function fn(r, p =pi()){  //pi()返回值交给p
            console.log(r * r * p);
        }
        fn(10);

如果只想传递第二往后的参数,参数一保持默认值,可以用undefined占位

function fn(name = '111', age){   //null   空都不行
            console.log(name);
            console.log(age);
        }
        fn(undefined,100);

支持参数二使用参数一的值作为默认值,反之不可以

  function fn(x,y = x){
            console.log(y);
        }
        fn(1);

解构变量有不定元素,那么函数的参数也可以有不定参数

            console.log(other);
        }
        fn('111',100,'男');