JavaScript ES6 引入了扩展运算符 ( ...),它允许在需要零个或多个参数或元素的地方扩展可迭代对象。
我们可以使用扩展运算符来转换可迭代对象,或者有时称为类似数组的对象。让我们看一些例子:
字符串
当扩展运算符应用于字符串时,结果是一个字符串数组,每个字符串代表原始字符串的一个字符:
const name = 'Zelda';
const letters = [...name]; // 'Z', 'e', 'l', 'd', 'a'
集合
Set是唯一值的集合。当扩展运算符应用于它时,结果是存储值的数组:
const data = [1, 2, 3, 1, 2, 4]
const values = new Set(data);
const uniqueValues = [...values]; // [1, 2, 3, 4]
节点列表
NodeList是节点的集合,由诸如Document.childNodes() 或 Document.querySelectorAll() 之类的方法返回。虽然它实现了一些有助于将其作为数组进行操作的方法(例如NodeList.prototype.forEach()),但通常需要将其转换为数组。当扩展运算符应用于它时,结果是包含节点的数组:
const nodes = document.childNodes;
const nodeArray = [...nodes]; // [ <!DOCTYPE html>, html ]