扩展运算符
- 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
- 只能在当前函数内部使用