1、擴展運算符【三個點(...)將一個數組轉為用逗號分隔的參數序列】
作用:用於函數調用
function add(x, y) { return x + y; } const numbers = [2, 6]; add(...numbers) // 8 8
2、...作用【求最大值/拼接數組/復制數組(a2復制a1,改a2不改變a1)/合並數組/將字符串轉化為真正的數組】
- 求最大值
- 拼接數組
- 復制數組(a2復制a1,改a2不改變a1)
- 合並數組
- 將字符串轉化為真正的數組
(1)最大值 Math.max()
Math.max(...[14, 3, 77]) 77
(2)拼接數組,通過push將一個數組添加到另一個數組的尾部
var arr1 = [1,2,3] var arr2 = [4,5,6] arr1.push(...arr2); arr1// [1, 2, 3, 4, 5, 6]
(3)復制數組
var arr1 = [1,2,3] var arr2 = [...arr1] console.log(arr1) // [1, 2, 3] console.log(arr2) // [1, 2, 3] arr2[0]=0 console.log(arr1) // [1, 2, 3] console.log(arr2) //[0, 2, 3]
(4)合並數組(多個)【淺拷貝】
const arr1 = ['1', '2']; const arr2 = ['3']; const arr3 = ['4', '5']; var arr4=[...arr1, ...arr2, ...arr3] console.log(arr4)// ["1", "2", "3", "4", "5"]
注意:將擴展運算符用於數組賦值,只能放在參數的最后一位,否則會報錯。
const [first, ...rest] = [1, 2, 3, 4, 5];//ok
const [...butLast, last] = [1, 2, 3, 4, 5];// 報錯 const [first, ...middle, last] = [1, 2, 3, 4, 5];// 報錯
(5)字符串(將字符串轉為真正的數組)
var name = 'mike' console.log([...name]) // ["m", "i", "k", "e"]