es6 扩展运算符疑问

阮一峰 :扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

其中 rest 参数的逆运算 是什么意思?
参数序列 又是什么意思? 它是什么样的数据结构 ?

我想知道 扩展运算符的原理 是什么

阅读 2.3k
2 个回答
  1. 看函数部分的rest的时候你可以知道,可以使用function (...arr){}的形式,将传进来东西全部接受进arr(这么名是你定义时可随便起的)。那么扩展运算符就是逆过程,将收集起来的东西再分散展开。
  2. 参数序列是类似于arguments的东西,就是包含函数参数的一个序列- -。
  3. 底层怎么实现的我也不知道。

没什么原理,只是语法糖而已。前者spread你已经知道了,后者可以搜索关键词“解构”。

讲这两个东西的文章很多,这里只举个例子

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]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题