首页 > 其他分享 >ES6-剩余参数

ES6-剩余参数

时间:2023-01-10 12:34:43浏览次数:43  
标签:剩余 ES6 const ... args 参数 fn

一.怎么用

        const fn = (x, y, ...args) => {//定义剩余参数要加...  使用时不用加... 不一定叫args,满足标识符命名即可;
            console.log(args);//永远是数组,没有值也是空数组
        }
        fn(1, 2)//[]
        fn(1, 2, 3)//[3]
        fn(1, 2, 3, 4)//[3,4]

二.剩余参数就是数组,不像arguments是类数组;

三.箭头函数有剩余参数,如果形参只有一个剩余参数,也不能省略()

四。使用剩余参数替代arguments

        const fn = (...args) => {
            console.log(args);
        }
        fn(1, 2, 3, 4)//[1,2,3,4]

五。剩余参数只能是最后一个参数

        const fn = (...args,x,y) => {//报错
            console.log(args);
        }

 六。剩余元素:在解构赋值中,且必须放在最后面

        // const [x, y, ...args] = [1, 2, 3, 4];
        // console.log(x, y, args);//1 2 [3,4]
        //-----------------------------------
        // const [x, y, ...args] = [1, 2];
        // console.log(x, y, args);//1 2 []
        //------------------------------------
        //const [...args,x, y] = [1, 2];//报错,必须放在最后面
        const { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
        console.log(z);//{a: 3, b: 4}

七。剩余参数,剩余元素区别

剩余参数要在函数形参里定义,且是作为形参,且这时一定是数组;不像arguments是内置不需要定义;

剩余参数用在解构赋值里,也可以是对象或者数组,此时叫做剩余元素;

剩余参数和剩余元素的书写格式都是使用“…变量名”的方式,不同的是:剩余参数是直接作为函数参数使用的。剩余元素是在解构赋值时,用来接收剩下的元素。

 

标签:剩余,ES6,const,...,args,参数,fn
From: https://www.cnblogs.com/zhoushangquan/p/17039774.html

相关文章

  • 【c&c++】C语言 带参数的#define中#和##的基本用法
    1、单#的作用是把参数变成字符串;2、##的作用是连接组合参数名字;废话不多说,看个简洁的例子就明白了#include<iostream.h>usingnamespacestd;#defineTEST0(arg)cou......
  • echarts点击柱状图带参数跳转到指定页面(路由)
    echarts点击柱状图带参数跳转到指定页面(路由)项目开发者常用echarts来实现数据可视化功能。上次遇到了一个问题,就是通过后台返回的数据渲染echarts数据完成后需要点击柱形......
  • ES6-函数参数的默认值
    一.看看怎么用constfn=(x,y=1)=>{returnx*y;//2}fn(2);//x=2,y没有实参使用默认值y=1;二.默认值生效条件:该形参===......
  • 使用@RequestBody注解接收的实体类中的某些参数为null
    原因postman调试接口为null的参数命名不符合“驼峰法”,类似实体类A的属性cEnterpriseId,这种命名是不规范的和lombook的@Data注解有关用postman传一个json到接口,json......
  • 菜鸡的bug-前端开发的get请求携带对象参数的问题
    我们开发的过程中,一般都是将axios封装后,简单的设置一下基地址、请求时间、请求拦截器中的请求头,响应拦截器中对能连通的接口的错误抛出处理、响应返回的数据的剥离处理等。......
  • mybatis接口方法中可以接收各种各样的参数,mybatis底层对于这些参数进行不同的封装处理
    mybatis底层将传进来的参数封装成map集合,每个集合中会有对应的参数值argx,因此假如不使用注解,会出现下面的错误,提醒找不到该参数###Errorqueryingdatabase.Cause:org......
  • ES6-对象字面量的增强
    一.属性、方法的简洁表示法键名和变量/常量名一样的时候,可以只写一个;我们在对象解构赋值时,等号左边也可以这样;方法可以省略冒号和function关键字    constse......
  • ES6之 Generator及它的使用场景
    一、介绍Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同回顾下上文提到的解决异步的手段:回调函数promise那么,上文我们提到promsie已经是一......
  • es6和es7的区别
    es6是什么ECMAScript6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程......
  • ES6-其他数据类型的解构赋值
    一.字符串的解构赋值1.以数组形式解构赋值const[a,,,b,c]='hello';console.log(a,b,c);//hlo2.以对象形式解构赋值//为什么字符串可......