我不理解,请老师解答

我不理解,请老师解答

问题一://img1.sycdn.imooc.com//climg/5f4e0b31297bd91d05001000.jpg这个中的①和③都是...args1为什么一个是剩余元素,一个是展开运算符?①中不也是将[1,3]展开为1,3嘛? 
②的话...args2难道不是吧[{name:'xh'},3]展开嘛?为什么是剩余参数?

问题二:举例:

const add=(①...args)=>{

            console.log(②args);   //[[1,2,3],[4,5]]

            console.log(③...args);//[1,2,3] [4,5]

        }


        add([1,2,3],[4,5]);
①表示剩余参数还是剩余元素?
②是剩余参数嘛?
③是展开元素


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小李 2021-12-25 17:42:01

同学你好,这道题的思想就是让同学区分一下什么是剩余元素、剩余参数、展开运算符。

1、①和③中的①是结合了解构赋值一起使用的,所以被称作为剩余元素,这里只是叫法与剩余参数不同,而起到的效果实际上与剩余参数相同。③的作用是把解构赋值得到的[1,2,3]进行展开,之后得到的值是123,而非[1,2,3]。②被称作为剩余参数,这里同学看一下调用的传参,它起到的作用是除了被解构赋值的所有参数,全都归拢到了一起的作用,并不是把[{name:'xh'},3]展开,展开的话,应是单独一个{name: "XH"}与单独一个3。

2、根据同学提供的问题2,①是剩余参数,因为它们没有结合解构赋值一起使用。②是剩余参数。③是展开运算符。

老师举了几个相对简单的例子,供同学参考如下。

1)课后题目中提供的图片序号1处,因为配合了解构赋值使用,与剩余参数有同样的效果,但是这里有个新的名称,叫剩余元素。如下例

https://img1.sycdn.imooc.com//climg/61c6e3980950317b10530278.jpg

2)课后题目中提供的图片序号2处,直接作为函数参数使用时表示剩余参数。如下例

https://img1.sycdn.imooc.com//climg/61c6e3c209fa1d5509790244.jpg

3)课后题目中提供的图片序号3处,展开数组中的所有元素,表示展开运算符。如下例:

https://img1.sycdn.imooc.com//climg/61c6e3de095b772f13390233.jpg

同学自己试试,看看是否能理解。祝学习愉快!

  • 提问者 一只少年 #1

    例如https://img1.sycdn.imooc.com//climg/61c6fd0008033c8906500162.jpg中是否写在function func()位置的都是剩余参数呢?

    2021-12-25 19:15:01
  • 好帮手慕小李 回复 提问者 一只少年 #2

    同学你好,解答如下:

    1、不一定都是剩余参数,如老师举的例子中function func([...agrs1]<<<是解构赋值的传参方式,...args2<<<一般来说都是剩余参数)。

    2、这里同学可以参考调用函数时传递的值是什么,像老师举的例子中,func([1,2,3],4)看到这种情况,func中传入的第一个值是[1,2,3],第二个值是4。那么针对传递的第一个参数是数组或者对象,那么基本上function func(第一个形参大概率是解构赋值的方式传入,第二个形参就是剩余参数),这很好理解,第二个形参就是除了第一个形参以外的所有参数。那么这里记住只要是第一个形参是解构赋值的形式出现,那么它就叫剩余元素。

    3、【扩展】正常工作中,剩余参数会以function func(参数1,...剩余参数)这种写法多为常见,那么...剩余参数就是表示除了参数1以外的所有参数。

    祝学习愉快!

    2021-12-25 23:42:41
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师