鍍金池/ 問(wèn)答/HTML/ es6 擴(kuò)展運(yùn)算符疑問(wèn)

es6 擴(kuò)展運(yùn)算符疑問(wèn)

阮一峰 :擴(kuò)展運(yùn)算符(spread)是三個(gè)點(diǎn)(...)。它好比 rest 參數(shù)的逆運(yùn)算,將一個(gè)數(shù)組轉(zhuǎn)為用逗號(hào)分隔的參數(shù)序列。

其中 rest 參數(shù)的逆運(yùn)算 是什么意思?
參數(shù)序列 又是什么意思? 它是什么樣的數(shù)據(jù)結(jié)構(gòu) ?

我想知道 擴(kuò)展運(yùn)算符的原理 是什么

回答
編輯回答
夏木
  1. 看函數(shù)部分的rest的時(shí)候你可以知道,可以使用function (...arr){}的形式,將傳進(jìn)來(lái)東西全部接受進(jìn)arr(這么名是你定義時(shí)可隨便起的)。那么擴(kuò)展運(yùn)算符就是逆過(guò)程,將收集起來(lái)的東西再分散展開(kāi)。
  2. 參數(shù)序列是類(lèi)似于arguments的東西,就是包含函數(shù)參數(shù)的一個(gè)序列- -。
  3. 底層怎么實(shí)現(xiàn)的我也不知道。
2017年12月21日 00:01
編輯回答
離魂曲

沒(méi)什么原理,只是語(yǔ)法糖而已。前者spread你已經(jīng)知道了,后者可以搜索關(guān)鍵詞“解構(gòu)”。

講這兩個(gè)東西的文章很多,這里只舉個(gè)例子

var arr = [1, 2, 3];

function test(...args) {
  console.log(args);
}

test(1, 2, 3);
// [ 1, 2, 3 ]

test(...arr);
// [ 1, 2, 3 ]

var [a, ...b] = arr;
// a = 1, b = [2, 3]
2017年6月17日 06:03