js函数的⼏种参数形式
1、默认参数
ES6 默认参数特性允许使⽤默认值初始化参数。这种⽐上⾯介绍的⽅法更好、更简洁。
// An highlighted block
function parameter(param1, param2 =0){
console.log(param2);// => 0
return param1 + param2;
}
parameter(1);// => 1
parameter(1, undefined);// => 1
2、解构参数
在JS函数参数中,咱特别喜欢的是解构的特性。可以将内联参数的对象或数组进⾏解构。这个特性使得从参数对象中提取⼀些属性⾮常有⽤
function parameter({ name }){
return`Hello, ${name}!`;
}
const person ={ name:'鸡腿'};
greet(person);// => 'Hello, 鸡腿'
{ name }是应⽤于对象解构的参数。
当然也可以结合默认参数:
function greetWithDefault({ name ='⽆名⽒'}={}){
return`Hello, ${name}!`;
}
greetWithDefault();// => 'Hello, ⽆名⽒!'js arguments
3、arguments 对象
JS 函数的另⼀个很好的特性是能够⽤可变参数调⽤同⼀个函数。这样可以使⽤ arguments 对象来获取传⼊的所有参数。
arguments对象是所有(⾮箭头) 函数中都可⽤的局部变量。你可以使⽤arguments对象在函数中引⽤函数的参数。
例如,对函数的参数求和:
function argumentsSum(){
console.log(arguments);// { 0: 5, 1: 6, length: 2 }
let sum =0;
for(let i =0; i < arguments.length; i++){
sum += arguments[i];
}
return sum;
}
argumentsSum(5,6);// => 11
arguments 是⼀个对应于传递给函数的参数的类数组对象。
有个问题是,每个函数作⽤域都定义了⾃⼰的arguments对象。因此,可能需要⼀个额外的变量来访问外部函数作⽤域arguments:
function outerFunction(){
const outerArguments = arguments;
return function innerFunction(){
// outFunction arguments
outerArguments[0];
};
}
4、剩余参数
function sum(...numbers){
console.log(numbers);// [5, 6]
duce((sum, number)=> sum + number);
}
sum(5,6);// => 11
…numbers是⼀个剩余参数,它将成为⼀个由剩余参数组成的真数组[5,6]。由于numbers 是⼀个数组,所以就可以使⽤数组⾃有⽅法reduce(与类数组对象的参数相反)。
如果不想在剩余参数中收集所有参数,则可以组合常规参数和剩余参数。
function multiplyAndSumArgs(multiplier,...numbers){
console.log(multiplier);// 2
console.log(numbers);// [5, 6]
const sumArgs = duce((sum, number)=> sum + number);
return multiplier * sumArgs;
}
multiplyAndSumArgs(2,5,6);// => 22
multiplier 是⼀个常规参数,它获取第⼀个参数的值。然后剩下的参数…numbers 接收剩余的参数。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。