ES6擴(kuò)展運(yùn)算符
●擴(kuò)展運(yùn)算符也是ES6 的新語(yǔ)法,主要有兩個(gè)功能
●展開和合并
●該語(yǔ)法主要操作的是數(shù)組和對(duì)象
●語(yǔ)法:...
展開
●可以 展開對(duì)象, 或者 展開數(shù)組
○如果是展開對(duì)象, 就是去掉對(duì)象的 {}
○果是展開數(shù)組, 就是去掉數(shù)組的 []
展開數(shù)組
<script>
const a1 = [100, 200, 300, 400]
// 如果我想在控制臺(tái)打印 100 200 300 400
console.log(100, 200, 300, 400) //100 200 300 400
console.log(...a1) //100 200 300 400
const a2 = [...a1, 500, 600, 700]
console.log(a2) //Array(7)
const res = Math.max(...a1)
console.log(res) //400
</script>
展開對(duì)象
<script>
// 展開對(duì)象
const o1 = {
name: 'Jack',
age: 18
}
console.log(o1); //{name: 'Jack', age: 18}
const o2 = {
gender: '男',
...o1
}
console.log(o2); //{gender: '男', name: 'Jack', age: 18}
const o3 = {
...o2,
love: '玩耍'
}
console.log(o3); //{gender: '男', name: 'Jack', age: 18, love: '玩耍'}
</script>
合并
●當(dāng)這個(gè)符號(hào)書寫在函數(shù)的形參位置的時(shí)候, 叫做合并運(yùn)算
●從當(dāng)前形參位置開始獲取實(shí)參, 直到末尾
●注意: 合并運(yùn)算符一定要寫在最后一位
<script>
// 會(huì)把第一個(gè)實(shí)參賦值給 a
// 會(huì)把第二個(gè)參數(shù)給了c
// 從第三個(gè)開始到最后的所有實(shí)參, 全部放在一個(gè)數(shù)組里面, 給到 b
const fn = (a, c, ...b) => {
console.log("我是 fn 函數(shù)")
console.log(a) //100
console.log(b); // [300, 400, 500, 600, 700]
console.log(c); //200
}
fn(100, 200, 300, 400, 500, 600, 700)
</script>
<script>
// 會(huì)直接報(bào)錯(cuò) Uncaught SyntaxError: Rest parameter must be last formal parameter
//未捕獲SyntaxError:Rest參數(shù)必須是最后一個(gè)形式參數(shù)
//也就是說(shuō)在合并的時(shí)候,合并運(yùn)算符一定要寫到最后
const fn = (a, ...b, c) => {
console.log("我是 fn 函數(shù)")
console.log(a)
console.log(b);
console.log(c);
}
fn(100, 200, 300, 400, 500, 600, 700)
</script>