• ES6 数组解构赋值


    1.数组解构
    let [a, b, c,d] = ["aa", "bb", 77,88]; 
    alert(a) //弹出aa      可以用babel  解析看ES5的转换结果
    嵌套数组解构 
    let [a,b,[c,d],e] =["aa",'bb',[33,44],55]; 
    alert(c) //弹出33 
    空缺变量 
    let [a,b,,e] =["aa",'bb',[33,44],55]; 
    //缺省可以以空格代替但是不能去掉占位的,
    多余变量 
    let [a,b,,e,f] =["aa",'bb',[33,44],55]; 
    alert(f); //弹出undefined 与变量f没有对应值,所以映射不过去
    默认值 
    let [a,b,,e,f='hello'] =["aa",'bb',[33,44],55]; 
    alert(f) //弹出给的默认值  
    
    但是 下面这种有值的情况给默认值是会被忽略的
    let [a,b,,e,f='hello'] =["aa",'bb',[33,44],55,66]; 
    alert(f) //弹出给的66

    结合扩展运算使用
    [a, b, ...c] = [1, 2, 3, 4, 5, 7];
    console.log(a); // 1
    console.log(b); // 2
    console.log(c); //[ 3, 4, 5, 7 ]
     2.对象解构 
    // let obj={uid:121,uname:'张三'};  //对象写法一
    let obj=new Object(); //对象写法二
      obj.uid=111; 
      obj.uname='张三'; 
      let {uid:id,uname:name}=obj; //顺序改变无影响 
    alert(name);  //弹出张三  这个也是创建一个变量,然后去映射出它的值
    小括号
    let obj={uid:121,uname:'张三'};  
        let uid,uname; 
        ({uid,uname} = obj); //必须有小括号,否则{}就会被解读为语句块 
    alert(uname);; 
    3.字符串解构
    let[a, b, c, d] ="倚天屠龙"; 

    console.log(a); //弹出 倚
    4.函数参数解构 
    let obj=new Object(); 
        obj.uid=111; 
        obj.uname='张三'; 
    function analysis({uid,uname}){ 
        alert(uid); 
        alert(uname); 
    } 
    analysis(obj); //把刚开始定义obj对象传进去,然后里面会自动分配好你对象的值,你只需在传参数(形参)的时候注意对象的个数(实参)即可

     运用的例子

    函数传参  test({name,type})
    
    只要你传过去的实参名字和形参一样 是可以不按照顺序的(前提用解构的方式传形参)

    说的通俗一点就是 映射 将映射的值给拿出来用

  • 相关阅读:
    什么是Service Mesh
    SQL Server 创建索引(index)
    RocketMQ在面试中那些常见问题及答案+汇总
    怎样用通俗的语言解释REST,以及RESTful?
    RPC和RestFul的区别是什么?
    Java 动态字节码生成技术 javassist
    热加载如此简单,手动写一个 Java 热加载
    Dubbo源码分析(十)同步调用与异步调用
    Dubbo源码分析(九)负载均衡算法
    Dubbo源码分析(八)集群容错机制
  • 原文地址:https://www.cnblogs.com/Model-Zachary/p/6130798.html
Copyright © 2020-2023  润新知