Spread / Rest 操作符指的是 ...
,具体是 Spread 还是 Rest 需要看上下文语境。
当被用于迭代器中时,它是一个 Spread 操作符:(参数为数组)
function foo(x,y,z) {console.log(x,y,z); }let arr = [1,2,3]; foo(...arr); // 1 2 3
当被用于函数传参时,是一个 Rest 操作符:(参数转化为数组)
function foo(...args) {console.log(args); } foo( 1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]