/*
函数扩展
1、 函数默认值
2、 参数解构赋值
3、 rest参数
4、 ...扩展运算符
*/
// 参数默认值
// function foo(param){
// let p = param || 'hello';
// console.log(p);
// }
// foo(); hello
// foo('hi'); hi
// function foo(param = 'nihao'){
// console.log(param);
// }
// foo(); nihao
// foo('hello kitty'); hello kitty
// ----------------------------------
// 参数解构赋值
// function foo({uname='list',age=12}={}){
// console.log(uname,age);
// }
// foo({uname:"zhangsan", age:15}); zhangsan 15
// -------------------------------------------
// rest参数 (剩余参数)
// function foo(a,...param){
// console.log(a); 1
// console.log(param); [ 2, 3, 4, 5, 6, 7 ]
// }
// foo(1,2,3,4,5,6,7);
// ------------------------
// 扩展运算符
// function foo(a,b,c,d,e){
// console.log(a + b + c + d + e );
// }
// foo(1,2,3,4,5); 15
// let arr = [1,2,3,4,5,6,7];
// function foo(a,b,c,d,e,f,g){
// console.log(a + b + c + d + e + f + g );
// }
// foo.apply(null,arr); 15
// foo(...arr); 28
// 合并数组
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let arr3 = [...arr1,...arr2];
console.log(arr3);