ES6的擴充套件操作符

2021-09-10 14:57:55 字數 1366 閱讀 1530

es6中的擴充套件操作符實際上與rest引數非常相似。前者是...,後者則是...+變數名

那它們主要的區別我個人認為主要是兩個:

rest引數使用在函式的引數定義時,擴充套件操作符使用在函式呼叫時

function

foo(

...items)

console.

log(

...[1,

2,3,

4,5]

);//這裡的...就是擴充套件操作符

擴充套件操作符可以理解為rest引數的逆操作

為什麼這麼說呢?從它們的作用就可以窺見一二。rest引數是將所有「多餘」的引數都放進陣列。例如

function

foo(x,

...items)

foo(1,

2,3,

4,5,

6);/*

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

*/

可以看出1之後的「多餘」的2,3,4,5,6都被放進了乙個陣列並賦值給了items變數。

而擴充套件操作符則是將陣列轉換成由逗號分隔的引數序列。例如,

let arr =

;let nums =[1

,2,3

,4,5

,6,7

,8,9

];arr.

push

(...nums)

;console.

log(arr)

;//[1,2,3,4,5,6,7,8,9]

若是給arr陣列的push方法直接傳入nums陣列,那麼輸出的結果將會是乙個二維陣列。

在函式呼叫中使用擴充套件操作符將可以實現類似於解構賦值的效果。注意,僅僅只是類似。例如,

function

pow(x, y)

let nums =[2

,3];

console.

log(

pow(

...nums));

//8

這個例子中nums中的23都分別賦值給了xy

ES6 擴充套件操作符騷操作

複製和合併陣列變得更為簡潔。不需要使用 concat 方法或 slice 方法,乙個 操作符已經足夠 const arr1 10 20,30 const copy arr1 console.log copy 10,20,30 const arr2 40 50 const merge arr1,arr...

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