总结
当我们在代码中看到 “…” 时,它要么是 rest 参数,要么就是 spread 语法。
有一个简单的方法可以区分它们:
-
若 … 出现在函数参数列表的最后,那么它就是 rest 参数,它会把参数列表中剩余的参数收集到一个数组中。
-
若 … 出现在函数调用或类似的表达式中,那它就是 spread 语法,它会把一个数组展开为列表。
使用场景: -
Rest 参数用于创建可接受任意数量参数的函数。
-
Spread 语法用于将数组传递给通常需要含有许多参数的列表的函数。
它们俩的出现帮助我们轻松地在列表和参数数组之间来回转换。
“旧式”的 arguments
(类数组且可迭代的对象)也依然能够帮助我们获取函数调用中的所有参数
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
<!--
Rest 参数用于创建可接受任意数量参数的函数。
Spread 语法用于将数组传递给通常需要含有许多参数的列表的函数
-->
<script>
// rest使用实例
function sum(firstvar,...ags){
let var1=0;
// arguments是全部参数的数组集合,只能接收全部数据
console.log("第一个参数:"+firstvar);
console.log("arguments长度"+arguments.length);
for (let num of ags) {
var1 += num;
};
return var1;
}
var num = sum(1,2,3);
console.log(num);
// spread使用实例
var arr = [1,2,3,4];
log = Math.max(...arr);
arrcopy = [...arr];
console.log("spread复制数组的方式"+arrcopy);
console.log("spreas实际参数"+log);
</script>
</html>