複製和合併陣列變得更為簡潔。不需要使用 concat() 方法或 slice() 方法,乙個 … 操作符已經足夠:
const arr1 =[10
,20,30
];const copy =
[...arr1]
;console.
log(copy)
;// → [10, 20, 30]
const arr2 =[40
,50];
const merge =
[...arr1,
...arr2]
;console.
log(merge)
;// → [10, 20, 30, 40, 50]
將陣列作為乙個需要單獨乙個個傳入引數的函式的引數
const arr =[10
,20,30
]// equivalent to
// console.log(math.max(10, 20, 30));
console.
log(math.
max(
...arr));
// → 30
物件屬性展開複製
const obj1 =
;const obj2 =
;console.
log(obj2)
;// →
如果存在相同的值 後者覆蓋前者
const obj2 =
;console.
log(obj2)
;// →
合併物件 類似於object.assign
const obj1 =
;const obj2 =
;const obj3 =
;// es2018
console.
log();
// →
// es2015
console.
log(object.
assign
(, obj1, obj2, obj3));
// →
不過,擴充套件屬性並不總能生成與 object.assign() 相同的結果 具體自己去試驗下 要點 == setter ES6的擴充套件操作符
es6中的擴充套件操作符實際上與rest引數非常相似。前者是.後者則是.變數名。那它們主要的區別我個人認為主要是兩個 rest引數使用在函式的引數定義時,擴充套件操作符使用在函式呼叫時。function foo items console.log 1,2,3,4,5 這裡的.就是擴充套件操作符擴充套...
es6新特性展開操作符「 」
展開操作符 允許乙個表示式在某處展開,在存在多個引數 用於函式呼叫 多個元素 用於陣列字面量 或者多個變數 用於解構賦值 的地方就會出現這種情況。如果在之前的js中想讓乙個函式把乙個陣列一次作為引數進行呼叫時 function test x,y,z var args 1,2,3 使用 時 var a...
ES6特性之 Spread操作符
spread操作符 也稱作展開操作符,作用是將可迭代的 iterable 物件進行展開。比如有2個陣列,我們要將其中乙個陣列中所有元素插入到另乙個陣列中,通過spread操作符,就可以這樣進行 var shoppinglist t shirt fruits,egg 我們看到,通過在shoppingl...