es6语法02-函数默认值与什么是剩余参数,与arguments区别

本文介绍了ES6中的函数默认值和剩余参数特性,对比了它们与ES5中arguments的区别。函数默认值允许设定参数的默认值,而剩余参数能将不定数量的参数打包成数组。在ES5中,arguments对象可以访问所有参数,但在ES6中,剩余参数是一个真正的数组,具备数组的所有方法,并且不包含已命名的参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

函数之默认值

剩余参数es6

arguments(es5)

剩余参数和arguments区别

函数之默认值

es5

function add(a,b){
      a = a || 20;
      b = b || 30;
      return a+b;
}
//如果没有向a传入参数a就等于20...
console.log(add());

es6

functiong add(a=20,b=30){

   return a +b;

}
//只传一个值就给a
console.log(add(30));

还可以是表达式

 function add(a = 10, b = getVal(5)) {
            return a + b;
        }

        function getVal(c) {
            return c + 5;

        }
        console.log(add());

剩余参数es6

剩余参数语法允许我们将一个不定数量的参数表示为一个数组。

语法
function(a, b, ...theArgs) {
  // ...
}
描述
如果函数的最后一个命名参数以...为前缀,则它将成为一个数组,其中从0(包括)到theArgs.length(排除)的元素由传递给函数的实际参数提供。

在上面的例子中,theArgs将收集该函数的第三个参数(因为第一个参数被映射到a,而第二个参数映射到b)和所有后续参数。

 function pick(obj, name, ...keys) {
            let result = Object.create(null);
            for (let i = 0; i < keys.length; i++) {
                console.log(keys);
                result[keys[i]] = obj[keys[i]];
            }
            return result;
        }

        const person = {
            name: 'xiaoma',
            age: 13,
            hobby: 'football'
        }
        console.log(pick(person, 'name', 'age', 'hobby'));
    </script>

arguments(es5)

无需指出参数名就能访问他们

function pick(obj, name) {
            let result = Object.create(null);
            console.log(arguments);
            for (let i = 0; i < arguments.length; i++) {
                result[arguments[i]] = obj[arguments[i]];
            }
            return result;
        }

        const person = {
            name: 'xiaoma',
            age: 13,
            hobby: 'football'
        }
        console.log(pick(person, 'name', 'age', 'hobby'));

剩余参数和arguments区别

1.剩余参数只包含那些没有实参对应的形参,而arguments包含所有的形参

2.剩余参数是一个数组,可以使用所有的数组方法

3.arguments对象还有一些附加的属性,如callee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值