思考: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...