91-扩展运算符

74 阅读1分钟

扩展运算符

  • ES6提供的一种新语法,由称为REST运算符,将数组、字符串、对象进行语法层面的展开,简化代码

操作

  • ...数组变量名:将数组中的每个数据进行罗列,数据和数据之间使用逗号隔开

    let arr = [22,33,44,55]
    console.log(...arr);//22,33,44,55
    //复制数组
    let 数组变量名 = [新数据,...arr,新数据]
    
  • ...字符串变量名:将字符串中的每个数据进行罗列,数据和数据之间使用逗号隔开

    let 字符串变量名 = "abcd"
    console.log(...字符串变量名);//a,b,c,d
    //字符串转数组
    let 数组变量名 = [...字符串变量名]
    
  • ...对象变量名:将属性进行罗列,属性和属性之间使用逗号隔开

    let 对象变量名 = {name:"小王",id:1,gender:"男"}
    let 新对象变量名 = {...对象变量名}
    

REST参数

  • 可以作为形参在函数中书写,但是只能作为最后一个形参进行传入

    function demo(a,...data){
        console.log(a,data);//1  [2,3]
    }
    // 参数不确定
    demo(1,2,3)
    
    • 可以解决在箭头函数中不能获取arguments的情况

      //箭头函数
      let demo1 = ()=>{
          console.log(arguments);//arguments is not defined
      }
      //rest参数解决
      let demo1 = (...data)=>{
          console.log(data);//[1,2,3]
      }
      demo1(1,2,3)
      

arguments

  • 调用函数时,传入的所有实参的类数组对象集合,可以通过length获取传入的实参个数,也可以通过下标进行访问

  • 应用:在实参个数不确定时,可以在函数内部使用arguments进行接收所有实参,不需要再使用形参进行对应接收

  • 注意:

    • 不需要单独声明,在调用函数时会自动创建arguments
    • 只能在当前函数内部使用