• javascript 省略号


    解构赋值

    解构赋值可以从等号右侧的值中提取一个或多个保存到左边的变量中:

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

    通常情况左侧多余的变量会被设置为undefined,右侧多余的变量会被忽略:

    let [a, b] = [1]   //a==1, y==undefined  右边的值个数比左边少
    [a,b] = [1, 2, 3]  //a==1, b==2  右边的值个数比左边多,多的丢弃了
    

     可以通过...把所有没有使用或剩余的值装进一个变量中:

    let [a, ...b] = [1, 2, 3, 4]  //a==1, b==[2, 3, 4]  这个就是可变参数,相当于python的*参数
    

     

    剩余形参

    剩余形参(rest parameter):让我们能够编写出在调用时传入比形参多任意数量的实参的函数。

    function max(first=-Infinity, ...rest){
        let maxValue = first
        for(let n of rest){
            if(n > maxValue){
                maxValue = n
            }
        }
        return maxValue
    }
    
    
    max(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)  //=>10 ,传入的参数数量任意 相当于python的*参数
    

    剩余形参的前面有...三个点,且必须是声明中的最后一个。

     

    扩展操作符

    用于展开数组的元素:(相当于python的解构)

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

     

    复制已有的数组:

    let numberCopy = Array.of(...numbers)  //numberCopy数组的值复制自numbers数组

     

    把字符串转换为单个字符数组:

    let nums = [..."123abc"]
    nums  //=> ["1", "2", "3", "a", "b", "c"]
    

     

    数组去重:把数组转换为集合,再用扩展操作符把集合转换为数组:

    let letters = [..."hello world"]
    [...new Set(letters)]  //=> ["h", "e", "l", "o", " ", "w", "r", "d"]
    

     

    也能用在函数调用中:

    let numbers = [5, 2, 10, -1, 9]
    Math.min(...numbers)  //=> -1
    

    REF

    https://zhuanlan.zhihu.com/p/434751764

  • 相关阅读:
    经方败案群20150303李小荣讲桂枝芍药知母汤
    经方败案群崩漏专题4李跃海谈崩漏体会
    经方败案群20150911李跃海“外台茯苓饮的探讨”
    经方败案群崩漏专题1
    经方败案群腰痛专题1
    柴胡加龙骨牡蛎汤去大黄合当归芍药散治顽固心悸案(李跃海)
    葛根汤加杏仁治疗便血
    胃胀不食与胸痹方
    肝硬化腹水案
    桂枝加厚朴杏子汤案
  • 原文地址:https://www.cnblogs.com/emanlee/p/16803085.html
Copyright © 2020-2023  润新知