JavaScript 词条目录
前端Wiki/JavaScript/基础/函数

参数与返回值

参数是函数的输入,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]));