zoukankan      html  css  js  c++  java
  • 解构

    • 解构赋值是对赋值运算符的扩展。
    • 是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。

    一、数组模型的解构(Array)

    let [a, b, c] = [1, 2, 3];

    let [a, [[b], c]] = [1, [[2], 3]];

     let [a = 1b] = []// a = 1, b = undefined
     

      // 剩余运算符

     let [a, ...b] = [1, 2, 3]; //a = 1 //b = [2, 3]

    
    
    1. 左侧为解构目标
    2. 右侧为解构源
    3. 解构目标可以嵌套、忽略、设置默认值
    4. 除了匹配结果为undefined外,解构目标为其默认值。
    5. 解构目标和解构源都有值,解构源的值覆盖解构目标的默认值。

    二、对象模型的解构(Object)

    let { foo, bar } = { foo: 'aaa', bar: 'bbb' };
    // foo = 'aaa'
    // bar = 'bbb'
     
    let { baz : foo } = { baz : 'ddd' };
    // foo = 'ddd'

    // 剩余运算符
    let {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40}; // a = 10 // b = 20 // rest = {c: 30, d: 40}

    // 解构默认值
    let {a = 10, b = 5} = {a: 3}; // a = 3; b = 5;
    let {a: aa = 10, b: bb = 5} = {a: 3}; // aa = 3; bb = 5;

    // 嵌套
    let obj = {p: ['hello', {y: 'world'}] }; let {p: [x, { y }] } = obj; // x = 'hello' // y = 'world'

    1. 赋值方式与组数赋值类似

    三、计算

    函数任意个参数之和:

    function sum(...num){
        var sumNum = 0;
        for(let i=0;i<num.length;i++){
            sumNum += parseInt(num[i])
        }
        console.log(sumNum)
     }
    
    sum(1,2,3)      //6
    sum(1,2,"3")     //6
    sum(1,3,"6和4")   //10

    参数之和

    function Sum(...nums){
      let sum = nums.reduce((x,y)=>{return x+y})
      return sum
    }
    
    • reduce()函数接收一个函数作为累加器
    • const arr = [1, 2, 3, 4, 5]
      const sum = arr.reduce((pre, item) => {
          return pre + item
      }, 0)
      console.log(sum) // 15
      

        

  • 相关阅读:
    项目管理原则
    开发规范
    讲故事-如何才算确认了需求
    关于概要设计
    jQuery操作
    IE8,IE9,IE10绿色版,以及ColorPix
    机务UI设计小节
    Abstract Factory
    Flyweight
    Chain of Responsibility
  • 原文地址:https://www.cnblogs.com/anbozhu7/p/11818581.html
Copyright © 2011-2022 走看看