// 1.默认参数
// var age = 18
// class Default{
// constructor(name=`dube`){
// this.name = name
// }
// sayName(){
// console.log(this.name+"今年"+`${age}`)
// }
// }
// var man = new Default("海涛")
// man.sayName()
//2 不定参数 //不定参数就是在函数中使用命名参数同时接收不定数量的未命名参数
function add(...x){
return x.reduce((m,n) => m + n )
}
// console.log(add(1,2,3,4))
//不定参数就是在函数没有一个确定的参数 三个点表示后面不定量的变量名
//函数 reduce就是达到一个累积的作用
var arr1 = [1]
var arr2 = [2]
var arr3 = [3,4,5,6,7]
function join(...x){
return x.reduce((m,n) => m.concat(n))
}
console.log(join(arr1,arr2,arr3 ))
//通过不定参数,我们可以方便的重复操作数组或者对象
// 3.扩展参数是另一种形式的语法糖,它允许传递数组或者类数组直接作为函数的参数而不通过apply
var people = ["111","b","c"]
function sayHello(a,b,c){
console.log(`${a},b,c`)
}
sayHello(...people)
//使用扩展参数 不用再使用apply,可以直接传递一个数组或者类数组作为函数的参数
//1.参数默认值 就是不需通过逻辑判断去传参数的
function animal( dog = 'peter'){
alert(dog)
}
animal("sadsa")
//2不定参数就是函数使用命名参数同时接收不定量的未命名参数
//例如 在()输入 ...后加一个参数,就是不定参数
function add(...x){
return x.reduce((m,n) => m +n)
}
alert(add(1,2,3))
//3。扩展参数它允许传递数组或者类数组作为参数而不使用call和apply
var peopleArr = ["james","kobe"]
function sayHello(...x){
alert("你好啊"+x)
}
sayHello(...peopleArr)