zoukankan      html  css  js  c++  java
  • ES6变量的解构赋值(一)数组的解构赋值

    let[a,...arr]=[1,2,3,4];//a==>1   arr==>[2,3,4]
    
    let [x, y, ...z] = ['a'];//a==>'a'  y==>undefined  z==> []
    
    let [a, [b], d] = [1, [2, 3], 4];//a==>1  b==>2  c==>4
    let[a,b]=[1,2,3];//a==>1  b==>2
    

     数组中变量左右两边一对一对应:

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

     变量左边数量低于右边

    let[a,b,]=[1,2,3];//a==>1  b==>2
    let[a,,c]=[1,2,3];//a==>1 c==>3
    let [a, [b], d] = [1, [2, 3], 4];//a==>1 b==>2 c==>4

     左边数量多于右边数量,匹配不到数值变量均为undefined

    let[a,b,c]=[1,,3];//a==>1  b==>undefined   c==>3

    特殊:arr为数组

    let[a,...arr]=[1,2,3,4];//a==>1   arr==>[2,3,4]
    let[a,...arr]=[1,];//a=>1 arr=>[]

    同时解构赋值可以使用默认值

    注:只有当数组成员严格等于undefined时,默认值才有效
    let[a,b='b']=['a'];//a==>'a'  b==>'b'
    let[a,b='b']=['a',undefined];//a==>'a'  b==>'b'
    
    let[a=1]=[null];//a==>null let[a=1]=[];//a==>1; let[a=1]=[undefined];//a==>1
    如果默认值是一个表达式,那么这个表达式是惰性求值的,即只有在用到的时候,才会求值
     
    function f() {
      console.log('aaa');
    }
    
    let [x = f()] = [1];//x==>1;
    
    let[y=f()]=[];
    y;//此时就y就相当于f();即结果为aaa
    
    默认值可以引用解构赋值的其他变量,但该变量必须已经声明。
    let[a=1,b=a]=[];//a==>1  b==>2
    let[a=b,b=1]=[];//报错
    
  • 相关阅读:
    kubernetes增加污点,达到pod是否能在做节点运行
    docker 搭建简易仓库registry
    sed 收集
    kebu之rook-ceph
    docker之harbor仓库注意事项
    docker--Dockerfile-nginx
    mysql 集群方案
    mysql GTID主从配置
    Python File(文件) 方法
    python标准异常
  • 原文地址:https://www.cnblogs.com/kongbaifeiye/p/11967332.html
Copyright © 2011-2022 走看看