/*
函数扩展
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);