zoukankan      html  css  js  c++  java
  • 解构赋值 和 symbol

    1.数组解构

    let [a,b,c,d] = ['aa','bb',77,88]

    嵌套数组解构

    let [a,b,[c,d],e] = ['aa','bb',[33,44],55]

    空缺变量

    let [a,b,,e] = ['aa','bb',[33,44],55]

    多余变量

    let [a,b,,e,f] = ['aa','bb',[33,44],55]

    默认值

    let [a,b,,e,f='hello'] = ['aa','bb',[33,44],55]

    2.对象解构

    let obj = new Object()
    
    obj.uid = 111
    
    obj.uname = '张三'
    
    obj.arr = ['aa','bb']
    
    let {uid:id,uname:name} = obj  // 顺序改变无影响
    
    alert(name) //直接输出 值

    小括号:

    let uid,uname,arr,a,b,c  //定义键名
    
    ({uid,uname,arr:[a,b,c='ccc']} = obj)    // c 为默认值 必须有小括号,否则 {} 就会被解读为语句块

    可嵌套(例如:arr)

    可有默认值 (例如:c)

    3.字符串解构

    let [a,b,c,d] = '倚天屠龙'
    
    console.log(a,b,c,d)

    4.函数解构

    function login () {
      let obj = new Object
      obj.uid = 111
      obj.uname = '张三'
      // 调用 analysis 方法, 传入 obj
      analysis(obj)
    }
    
    function analysis ({uid,uname}) {
      alert(uid);
      alert(uname);
    }
    
    analysis(obj)

    // 以下也正确

    let obj = {uid:121,uname:'张三'}
    
    function analysis ({uname}) {
      alert(uname)
    }

    参数中数组、字符串、默认值、缺位均支持

    Symbol 是 ES6 新增的一种值类型数据,表示一种绝不重复的值

    let s1 = Symbol(33)
    
    let s2 = Symbol(33)
    
    alert(s1 == s2)  // false

    .

  • 相关阅读:
    HashMap 链表插入方式 → 头插为何改成尾插 ?
    MySQL 日志之 binlog 格式 → 关于 MySQL 默认隔离级别的探讨
    Eclipse
    Delphi
    Delphi
    Delphi
    Delphi
    Delphi
    Delphi
    Delphi
  • 原文地址:https://www.cnblogs.com/crazycode2/p/6659997.html
Copyright © 2011-2022 走看看