参数与返回值
参数是函数的输入,return 是函数的输出。ES6 之后参数能力大幅增强:默认参数让参数可以不传(function f(x = 1)),剩余参数 ...nums 把多传的参数收进数组,处理「任意个参数」非常方便。
关于返回值有三点要知道:没有 return 的函数返回 undefined;return 会立即结束函数执行,后面的代码不会运行;需要「返回多个值」时,打包成数组或对象返回即可。
函数本身也可以被返回——这种「返回函数的函数」叫高阶函数,是闭包(后面会学)的典型应用场景,比如定制化的加工器。
本节要点默认参数省去 if 判空;...args 收集剩余参数;无 return 返回 undefined;return 后的代码不执行;返回函数可实现定制逻辑。
JavaScript
// 默认参数:不传时用默认值 function welcome(name, city = '北京') { return '欢迎 ' + name + '(来自' + city + ')'; } console.log(welcome('小明')); console.log(welcome('小红', '上海')); // 剩余参数:多余的参数收进数组 function sum(...nums) { return nums.reduce((acc, n) => acc + n, 0); } console.log(sum(1, 2, 3, 4)); // 10 // 没有 return 的函数返回 undefined function noReturn() {} console.log(noReturn()); // undefined // 返回函数:高阶函数 function makeMultiplier(factor) { return (n) => n * factor; } const double = makeMultiplier(2); console.log(double(5)); // 10 // 返回多个值:打包成对象 function minMax(arr) { return { min: Math.min(...arr), max: Math.max(...arr) }; } console.log(minMax([3, 1, 9, 4]));
📚 推荐阅读
来自万象云档的免费在线书籍,点击封面直接阅读




