Appearance
三点运算符
“…”运算符,是 ES6 里一个新的运算法,称为三点运算符,也叫展开/收集运算符 ES6 官方的说明是,…运算符可以展开一个可迭代对象中的所有项。 可迭代的对象一般是指可以被循环的,包括 string,array,set 等。
作用
- 展开(spread operator)
js
const b = { c: 1, d: 2 };
// 展开获取B中所有的属性
const d = { a: 3, ...b, d: 3 };
- 收集(rest operator)
js
const c = () => {
console.log(arguments);
};
c(1);
箭头函数没有自身的 arguments,那么我们如何获取函数的实参,这时就通过三点运算符的收集作用,收集实参到 ret 中
js
// 箭头函数没有自身的arguments,我们如何获取函数的实参,这时就通过**三点运算符的收集作用**,收集实参到 ret 中
const a = (...ret) => {
console.log(ret);
};
例子 2
js
let a = [1, 2, 3];
let [b, ...c] = a;
b; // 1
c; // [2,3]
// 也可以
let a = [1, 2, 3];
let [b, ...[c, d, e]] = a;
b; // 1
c; // 2
d; // 3
e; // undefined
// 也可以
function test(a, ...rest) {
console.log(a); // 1
console.log(rest); // [2,3]
}
test(1, 2, 3);
- 把类数组转换为数组(其实也是展开的作用)
js
const _lis = document.getElementByTagName('li');
const arr = [..._lis];
console.log(_lis); // HTMLCollection
console.log(arr); // Array