// 展开合并运算符
// 展开合并运算符,实际上都是一样的运算符
// 只是不同情况下,执行不同功能
// 运算符 ... 三个点
// 如果定义在 形参 () 中
// 合并运算符,以数组的形式,将所有实参,存储在定义的形参中
// 语法1 , (...形参)=>{} 以数组的形式,将所有的实参,存储在形参中
// 语法2 , (形参1,形参2, ...形参3)=>{}
// 形参1中存储实参1,形参2中存储实参2,其他实参都以数组的形式,存储在形参3中
// 总结: 定义在函数形参()中的 ...
// 作用是合并运算符,将对应的实参以数组的形式存储在 ...形参中
// 定义在函数实参()中的 ...
// 作用是展开运算符,将数组每个单元的数据展开,一一对应赋值给函数的形参
// 只能展开数组,不能展开对象
// 知识点回顾
// 函数中,有一个 arguments ,以数组的形式存储所有的实参
// 在 箭头函数中 , 没有 arguments 这个功能
function fun1(){
console.log(arguments) ;
}
fun1(1,2,3,4,5,6,7,8,9);
// arg 形参中以数组的形式存储实参 a,b,c
var fun2 = ( ...arg )=>{
console.log(arg) ;
}
fun2('a','b','c');
// 第一个形参,str1,应该存储实参1 a
// 第二个形参,str2,应该存储实参2 b
// 其他所有的实参,都以数组的形式,存储在 arg中
var fun3 = ( str1 , str2 ,...arg )=>{
console.log(str1 , str2 ,arg) ;
}
fun3('a','b','c','d','e','f',1,2,3,4,5,);
function fun4 (a,b,c,d,e){
console.log(a,b,c,d,e);
}
// 调用fun4,需要输入3个参数
const arr = ['北京','上海','广州','重庆','天津'];
// 实际是需要将 数组中的数据,一一对应的赋值给函数的形参,作为函数执行时的实参
fun4(...arr);