zoukankan      html  css  js  c++  java
  • 【JavaScript】展开语法

    以下内容为学习记录,可以参考 MDN 原文。

    环境

    • node v12.18.1
    • npm 6.14.5
    • vscode 1.46
    • Microsoft Edge 83

    概念

    展开语法(Spread syntax),可以在函数调用数组构造时,将数组表达式或者 string 在语法层面展开;还可以在构造字面量对象时, 将对象表达式按 key-value 的方式展开。

    示例

    function sum(x, y, z) {
      return x + y + z;
    }
    
    const numbers = [1, 2, 3];
    
    console.log(sum(...numbers));
    // expected output: 6
    
    console.log(sum.apply(null, numbers));
    // expected output: 6
    

    在函数调用时使用展开语法

    function myFunction(x, y, z) { }
    var args = [0, 1, 2];
    myFunction(...args);
    

    构造字面量数组时使用展开语法

    var parts = ['shoulders', 'knees']; 
    var lyrics = ['head', ...parts, 'and', 'toes']; 
    // ["head", "shoulders", "knees", "and", "toes"]
    

    数组拷贝

    var arr = [1, 2, 3];
    var arr2 = [...arr]; // like arr.slice()
    arr2.push(4); 
    
    // arr2 此时变成 [1, 2, 3, 4]
    // arr 不受影响
    

    连接多个数组

    var arr1 = [0, 1, 2];
    var arr2 = [3, 4, 5];
    var arr3 = [...arr1, ...arr2];
    

    构造字面量对象时使用展开语法

    var obj1 = { foo: 'bar', x: 42 };
    var obj2 = { foo: 'baz', y: 13 };
    
    var clonedObj = { ...obj1 };
    // 克隆后的对象: { foo: "bar", x: 42 }
    
    var mergedObj = { ...obj1, ...obj2 };
    // 合并后的对象: { foo: "baz", x: 42, y: 13 }
    
  • 相关阅读:
    Mysql int类型你了解多少
    java 小程序开发PKCS7Padding 解密相关问题
    Shiro+JWT 实现权限管理(二)--JWT
    Shiro+JWT 实现权限管理(一)--Shiro
    HTTP常见状态码
    Java开发之Redis
    微信公众号开发总结(一) --程序入口
    成熟男人需要懂得的100件事
    Java8 Time API与老Date之间的转换
    极光推送工具类
  • 原文地址:https://www.cnblogs.com/jiangbo44/p/13756816.html
Copyright © 2011-2022 走看看