// 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)