zoukankan      html  css  js  c++  java
  • es6的展开运算符.md

    前言

    es6的新语法已经出来很久了,平时用的最多的就是箭头函数还有变量的定义。对于展开运算符则是很少用,今天看到的一篇文章讲的展开运算符的妙用,相见恨晚。所以将这几个用处记录下来。多看多用。

    替代Apply的函数调用

    平时经常用Function.prototype.apply,传递一个数组作为参数,使用数组中存放的一组参数调用函数。

    function doSomething(x, y, z) {}
    var args = [0, 1, 2];
    
    // 调用函数
    doSomething.apply(null, args)
    
    

    采用展开运算符我们能够避免使用aply的同时,轻易调用函数。只需在数组加上展开运算符即可。

    doSomething(...args)
    

    使用...使代码变得更加简短清晰。并且不用多余的null

    合并数组

    最喜欢用来合并数组,跟我们带来一种全新的方式

    arr1.push(...arr2)  // 将arr2追加到arr1数组的末尾
    arr1.unshif(...arr2)  // 将arr2追加到arr1数组的开头
    

    如果你想要整合两个数组,并且某个数组的特定位置上

    let arr1 = [2,3];
    let arr2 = [1,...arr1,4,5];
    
    

    很精简,代码更少!

    拷贝数组

    拷贝数组,过去我们经常用Array.prototype.slice()来做,但是现在也可以用展开运算符:

    let arr1 = [1,2,3];
    let arr2 = [...arr1];
    arr2.push(4);
    console.log(arr2)  // 1,2,3,4
    

    注意:数组中的对象依然是引用值,所以不是任何东西都拷贝过去

    将arguments 或者NodeList 转化为Array

    像拷贝数组一样,我们经常使用Array.prototype.slice和arguments这种类数组对象转化为真正的数组。但是我们现在用展开运算符就可以做到

    [...document.querySelectorAll('myDiv')]
    

    使用此法,甚至可以像数组一样获取参数

    let myFn = function(...args) {}
    

    使用Math函数

    let numbers = [1,2,3,4,5,6,7];
    Math.min(...numbers)
    

    解构

    展开运算符用于解构更会一种超级好用的方法。使用解构和展开运算符将信息解压到你想要的变量中去

    let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
    console.log(x); // 1
    console.log(y); // 2
    console.log(z); // { a: 3, b: 4 }
    
  • 相关阅读:
    操作winrar
    lucene.NET详细使用与优化详解
    js实现记住帐号或密码(js读写COOKIE)
    jQuery对select操作小结
    XMLHelper
    AJAX2用法
    as3Crypto and php, what a fun ride!
    linux文件描述符导致squid拒绝服务
    Centos 增加硬盘
    安装Squid log analyzer分析工具
  • 原文地址:https://www.cnblogs.com/Imflyer/p/7792866.html
Copyright © 2011-2022 走看看