扩展运算符 ...
1、是rest参数的逆运算,将数组转为用逗号分隔的参数序列;
function fn(...num){
console.log(num); //[1,2,3,4,5,6]
}
fn(1,2,3,4,5,6);
console.log(...[1,2,3,4,5,6]); //1,2,3,4,5,6
console.log(1,...[2,3,4],5); //1,2,3,4,5
我们发现reset参数与扩展运算符,正好相反,reset是把一个个的参数聚拢成一个数组,而扩展运算符却把数组分割成一个个单独的数字。
2、它的内部使用的是for of循环;
const [...num]=[1,2,3];
console.log(num);
const result=[];
for(let v of num){
result.push(v);
}
console.log(result); //[1,2,3]
2、把类数组转成真正数组;
<ul>
<li></li>
<li></li>
<li></li>
</ul>
<script>
const lis=[...document.querySelectorAll("li")];
console.log(lis); //[ li, li,li ]
</script>
3、替代apply;
console.log(Math.max(12,65,23,79,92)); //92
const arr=[12,65,23,79,92];
console.log(Math.max.apply(null,arr)); //92
console.log(Math.max(...arr)); //92
4、替代数组的concat方法;
总结
函数中的参数reset就是把参数中有序有逗号隔开的参数转为数组,而单独使用扩展运算符,就是把数组,转化为有逗号的序列。