在 JavaScript 中,function sum(...args)
和 function sum(args)
这两种写法有重要的区别:
1. function sum(...args)
这种写法使用了 剩余参数(rest parameter)语法。...args
会将传入函数的所有参数收集到一个数组中,args
是这个数组。
...args
允许函数接收任意数量的参数,并将它们作为一个数组处理。- 无论传入多少个参数,
args
都会包含这些参数。
例子:
function sum(...args) {
return args.reduce((total, num) => total + num, 0);
}
console.log(sum(1, 2, 3, 4)); // 输出 10
console.log(sum(10, 20)); // 输出 30
console.log(sum(5)); // 输出 5
- 这里
args
是一个数组,可以使用数组方法(如reduce
,map
,filter
等)来处理。
2. function sum(args)
这种写法定义了一个参数 args
,它是一个普通的参数,函数会期望传入 一个单独的参数。
- 如果你传入多个参数,
args
只会获取第一个参数。 - 传入的参数没有自动转换成数组,
args
只是一个普通的变量。
例子:
function sum(args) {
return args.reduce((total, num) => total + num, 0);
}
console.log(sum([1, 2, 3, 4])); // 输出 10
console.log(sum([10, 20])); // 输出 30
console.log(sum([5])); // 输出 5
- 这里你需要传入一个 数组 作为参数,因为
args
只是一个单一的变量。
总结:
...args
是 剩余参数,允许函数接受任意数量的参数,并把它们存储到一个数组中。args
是普通的单一参数,通常是你传递给函数的一个整体值,比如一个数组,或者任何其他类型的数据。
何时使用:
- 如果你不确定函数会收到多少个参数,应该使用
...args
。 - 如果你只需要一个参数(如一个数组或对象),则可以使用
args
。
希望这个解释能帮你理解这两种写法的区别!
标签:function,...,sum,args,参数,数组 From: https://www.cnblogs.com/pansidong/p/18527294