ES7的... 用法

一、将一个数组转为用逗号分隔的参数序列。(若数组为空不产生任何效果)
    console.log(1, ...[2, 3, 4], 5)     // 1 2 3 4 5
    [...document.querySelectorAll('div')]     // [<div>, <div>, <div>]

二、复制数组(a2复制a1,这种方法之后再改变a2也不会影响到a1)
    const a1 = [1, 2];
        // 写法一
    const a2 = [...a1];
        // 写法二

    const [...a2] = a1;

三、合并数组(不过,这两种方法都是浅拷贝)
    const arr1 = ['a', 'b'];
    const arr2 = ['c'];
    const arr3 = ['d', 'e'];
        // ES5 的合并数组
    arr1.concat(arr2, arr3);  // [ 'a', 'b', 'c', 'd', 'e' ]
        // ES6 的合并数组

    [...arr1, ...arr2, ...arr3]    // [ 'a', 'b', 'c', 'd', 'e' ]

四、与解构赋值结合(注意:扩展符项必须放在最后一位)
    ① const [first, ...rest] = [1, 2, 3, 4, 5];
        first // 1
        rest  // [2, 3, 4, 5]
    ② const [first, ...rest] = [];
        first // undefined

        rest  // []

五、可以将字符串转为真正的数组

        [...'hello']     // [ "h", "e", "l", "l", "o" ]

六、Map 和 Set 结构,Generator 函数
    ①扩展运算符内部调用的是数据结构的 Iterator 接口,因此只要具有 Iterator 接口的对象,都可以使用扩展运算符,比如     Map结构。
    let map = new Map([[1, 'one'],[2, 'two'],[3, 'three']]);
    let arr = [...map.keys()];     // [1, 2, 3]
    ②Generator 函数
    const go = function*(){
          yield 1;
          yield 2;
          yield 3;
     };
[...go()] // [1, 2, 3]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值