ES6 展開運算子

2021-09-29 17:34:16 字數 1703 閱讀 2911

思考:

let arr1 = [11, 22, 33]; let arr2=[『one』, 『two』, 『three』] 合併成乙個新陣列

展開運算子(spread operator)允許乙個表示式在某處展開。展開運算子在多個引數(用於函式呼叫)或多個元素(用於陣列字面量)或者多個變數(用於解構賦值)的地方可以使用

作用:

1-展開陣列

2-展開物件

const arr =[1

,2,3

]console.

log(

...arr)

//[1,2,3]

const arr =[1

,2,3

]const arr2 =[4

,5,6

]const newarr =

[...arr,

...arr2,5,

6,7,

...arr]

console.

log(newarr)

//[1,2,3,4,5,6,5,6,7,1,2,3]

const obj =

const obj1 =

const obj2 =

}console.

log(obj2)

//

展開運算子在函式形參中的應用

function

(a, b,

...theargs)

//theargs將收集該函式的第三個引數,

//(因為第乙個引數被對映到a,而第二個引數對映到b)和所有後續引數。

剩餘引數可以被解構,這意味著他們的資料可以被結構賦值到不同的變數中。

functionf(

...[a, b, c])f

(1)// nan (b and c are undefined)f(

1,2,

3)// 6f(

1,2,

3,4)

// 6 (the fourth parameter is not destructured)

function

multiply

(multiplier,

...theargs));

}var arr =

multiply(2

,1,2

,3);

console.

log(arr)

;// [2, 4, 6]

function

sortrestargs

(...theargs)

alert

(sortrestargs(5

,3,7

,1))

;// 彈出 1,3,5,7

function

sortarguments()

alert

(sortarguments(5

,3,7

,1))

;// 丟擲typeerror異常:arguments.sort is not a function

//結論:『剩餘引數』可以在剩餘引數上使用任意的陣列方法,而arguments物件不可以

es6 展開運算子

展開運算子不能用在物件當中,只能在可遍歷物件中使用 iterables iterables的實現是依靠 symbol.iterator 函式,目前只有array,set,string內建 symbol.iterator 方法,不過es7草案中已經加入了物件展開運算子。可用展開運算子展開陣列,解構陣列...

es6 展開運算子

好記性不如爛筆頭,在學習的過程中,越來越明白這句話的含義 es6的展開運算子使用三個點來表示 使用展開運算子的前提 物件具有 iterator 遍歷器介面 比如陣列,怎麼判斷乙個物件是否具有iterator 遍歷器介面呢,我們檢視物件是否有symbol symbol.iterator 屬性就可以了 ...

es6展開運算子

展開運算子 在es6中用.來表示展開運算子,它可以將陣列方法或者物件進行展開。先來看乙個例子它是如何使用的。const arr1 1,2,3 const arr2 arr1,10,20,30 這樣,arr2 就變成了 1,2,3,10,20,30 arr1中的值完全轉殖到了arr2中 arr1改變a...