es6 展开运算符 ...

好记性不如烂笔头,在学习的过程中,越来越明白这句话的含义;

ES6的展开运算符使用三个点来表示  ...


使用展开运算符的前提:对象具有 Iterator 遍历器接口 ,比如数组,

怎么判断一个对象是否具有Iterator 遍历器接口呢,我们查看对象是否有 Symbol(Symbol.iterator)

属性就可以了有的话,那就具有Iterator 遍历器接口,没有的话,那就不具有;

我们看看数组:

< script>
let arr =[ "测试", "接口", "类型"];
console. log(arr);
</ script>

查看控制台:

  1. ƒ unshift()
  2. values:ƒ values()
  3. Symbol(Symbol.iterator):ƒ values()
  4. Symbol(Symbol.unscopables):{copyWithintrueentriestruefilltruefindtruefindIndextrue, …}
  5. __proto__:Object

可以看到是有这个属性的,那么就是说,数组是具有这个接口的,

也就是说,我们可以对数组使用展开运算符;

数组,map ,set  在es6中都是具有这个接口的,但是object对象在es7中才增加了这个接口;

除了上面的,字符串也是可以的,和数组一样;


下面我们可以利用展开运算符展开一个数组:

< script>
let arr =[ "测试", "接口", "类型"];
console. log( ...arr);
</ script>


上面输出:测试 接口 类型

在数组的名字前面加上 ...  即可展开数组中的所有内容;


利用上面的展开,我们就可以在函数的参数中使用:

< script>
let arr =[ "测试", "接口", "类型"];
function abc( a, b, c){
return a +b +c;
}
console. log( abc( ...arr));
</ script>


还有很多的使用方法,慢慢积累了...

猜你喜欢

转载自blog.csdn.net/cvper/article/details/80296405