美文网首页
rest 参数与扩展运算符-ES6初学习

rest 参数与扩展运算符-ES6初学习

作者: 程咸菜 | 来源:发表于2017-02-06 11:04 被阅读0次

rest 参数

rest 参数叫做不定(剩余)参数,写法就是 ... 返回数组结构。这个 ... 必须要加到最后一项。只能在结构中的最后。

var [a,b,c] = [1,2,3,4,5,6,7];      
console.log(a);     
console.log(b);     
console.log(c);     
var [aa,bb,...cc] = [1,2,3,4,5,6,7];      
console.log(aa);     
console.log(bb);     
console.log(cc);         

这个例子中 rest 参数不能放在 aa 或者 bb 的前面,只能放 cc 的前面。数据的返回格式是数组。
在函数中也可以有 rest 参数。
function show(a,b,...c){               
    console.log(c)             
};                 
show(1,2,3,4,5,6);            

在函数的位置中也是包括在最后的。
函数的 length 是不包括 rest 参数的。这句话的意思是 ... 是不包括在函数的 length 中的。
function show(a,b,...c){               
    console.log(show.length)             
}; //长度返回 2 不是 3 这说明 ...c 没有包括进去      

扩展运算符 ...

扩展运算符 ... 是 rest 参数的逆运算。

var arr = [1,2,3,4,5,6,7];    
console.log(arr);    
console.log(...arr);      

把数组再次转化为字符串的形式
同样的函数也是可以的,
var arr = [1,2,3];    
function show(a,b,c){     
    console.log(a);     
    console.log(b);     
    console.log(c);     
};     
show(...arr);      
show(arr);                  

扩展运算符可以转的数据结构是有遍历器接口的都可以转。在ES6中,有三类数据结构原生具备Iterator接口:数组、某些类似数组的对象、Set和Map结构,对象(Object)之所以没有默认部署Iterator接口,是因为对象的哪个属性先遍历,哪个属性后遍历是不确定的,需要开发者手动指定。这里推荐一篇文章 Iterator接口

相关文章

网友评论

      本文标题:rest 参数与扩展运算符-ES6初学习

      本文链接:https://www.haomeiwen.com/subject/kubyittx.html