web前端技術分享 es6展開運算子概念和使用!

2021-10-21 19:32:37 字數 1399 閱讀 4692

對於陣列的處理,開發者不斷的在創造更好的方式,而在es2015(es6) 新增了一種基本運算子——展開運算子.使用三個點 … 表示,它的作用是在呼叫函式、陣列構造時將陣列表示式或字串在語法層面進行展開;構建字面量的物件時以鍵值對的形式進行展開。

這裡小千給大家介紹一下它的基本用法:

構建字面量語法的陣列

通常情況下構建字面量結構的陣列我們會使用如 push splice unshift concat 等函式將現有陣列作為新陣列的一部分。

展開運算子可以更簡單快速的完成這項工作。

鏈結陣列

在擁有展開運算子以前 我們通常使用 concat 函式 進行陣列的鏈結

陣列拷貝

從以上結果我們可以看出 展開運算子只遍歷展開陣列的第一層(淺拷貝)。 展開的結果如果是引用型別則不繼續向下遍歷。 事實上它的行為和 object.assign() 是相同的

物件拷貝和合併

使用展開運算子進行新物件構造 本質上是講原有物件中的所有 可列舉 屬性拷貝到新物件中; 與 object.assign() 不同的是 object.assign()會觸發setters 展開運算子不會。

rest引數(剩餘引數)

es2015 引入 rest引數(語法為 …變數名),用於獲取函式的多餘引數,這樣就不需要使用arguments物件了。rest引數搭配的變數是乙個陣列,該變數將多餘的引數放入陣列中。 這個特性可以讓我們在一些特定環境更方便的去處理引數(例如沒有arguments的箭頭函式)

我們也可以對部分引數使用rest引數,但是在rest引數後不能有其他引數(rest必須是最後乙個引數)

注意點: 在陣列或函式引數中使用展開語法時, 只能用於 可迭代物件(支援 iterator)

以上就是小千分享es6展開運算子概念和基本用法,希望對大家有幫助。

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...