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

.

解构赋值 和 symbol的更多相关文章

  1. ES6语法~解构赋值、箭头函数、class类继承及属性方法、map、set、symbol、rest、new.target、 Object.entries...

    2015年6月17日 ECMAScript 6发布正式版本 前面介绍基本语法,  后面为class用法及属性方法.set.symbol.rest等语法. 一.基本语法:  1.         定义变 ...

  2. ES6学习----let、const、解构赋值、新增字符串、模板字符串、Symbol类型、Proxy、Set

    这篇es6的学习笔记来自于表哥 表严肃,是我遇到过的讲课最通透,英文发音最好听的老师,想一起听课就去这里吧 https://biaoyansu.com/i/hzhj1206 ES6就是JS6,JS的第 ...

  3. ES6解构赋值详解

    文章转载自:http://www.zhufengpeixun.cn/article/167 解构赋值(destructuring assignment)语法是一个 Javascript 表达式,这种语 ...

  4. ES6 - 基础学习(3): 变量的解构赋值

    解构赋值概述 1.解构赋值是对赋值运算符的扩展. 2.它是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值. 3.代码书写上显得简洁且易读,语义更加清晰明了:而且还方便获取复杂对象中的数据字 ...

  5. es6之变量的解构赋值

    es5中通常我们声明变量都是以下的方式: var a = 10; var b = 20; var c = 30; //或者 var a = 10,b = 20,c = 30; //或者 var arr ...

  6. ES6之解构赋值

    截止到ES6,共有6种声明变量的方法,分别是var .function以及新增的let.const.import和class: 我们通常的赋值方法是: var foo='foo'; function ...

  7. ECMAScript6学习笔记 ——let、const、变量解构赋值

    let 不存在变量提升 通过let声明的变量仅在块级作用域内有效 不允许在同一个作用域内重复声明一个变量 防止值公用 var oUl = document.querySelectorAll('ul&g ...

  8. ES6 - Note2:解构赋值

    ES6的解构赋值就是利用模式匹配从按照一定模式的数组或者对象中提取值赋值给变量. 1.数组的解构赋值 在ES6以前,变量的赋值是直接指定的,以后可以这么来写,如下所示 let [a,b,c] = [1 ...

  9. es6分享——变量的解构赋值

    变量的解构赋值:ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 以前的写法: var a = 1; var b = 2; es6允许的写法 ...

随机推荐

  1. hdu 1561 树形dp+分组背包

    题意:就是给定n个点,每个地点有value[i]的宝物,而且有的宝物必须是另一个宝物取了才能取,问取m个点可以获得的最多宝物价值. 一个子节点就可以返回m个状态,每个状态表示容量为j(j<=m) ...

  2. bzoj 3223 文艺平衡树 Splay 打标志

    是NOI2003Editor的一个子任务 #include <cstdio> #include <vector> #define maxn 100010 using names ...

  3. spoj4155 OTOCI LCT

    动态树,支持加边,修改点权,查询链的点权和. #include <cstdio> #include <iostream> #define maxn 30010 using na ...

  4. 内功心法 -- java.util.LinkedList<E> (3)

    写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util ...

  5. 前端UED网站汇总

    爱词霸UED团队 MED | 营销展现研究专家 携程UED-携程旅行前端开发团队 支付宝前端开发车间 Taobao UED Team: 淘宝网用户体验团队博客,有关用户体验设计和研究的经验分享. - ...

  6. vscode 插件设置

    VS Code 安装插件 prettier Beautify vscode 首选项 --> 设置 "editor.detectIndentation": false, &qu ...

  7. IOS上传图片方法类

    IOS上传图片方法类   iPhone开发中遇到上传图片问题,找到多资料,最终封装了一个类,请大家指点,代码如下 // // RequestPostUploadHelper.h // demodes ...

  8. Visual Studio 2015创建Shared Project时出错

    今天使用Visual Studio 2015创建共享项目的时候发现如下错误: 网上搜了一下,发现了同样有人问这个问题的问题:Why can't I create Shared Project in V ...

  9. HTTP和HTTPS的区别,以及各自的优缺点

    转自  https://www.cnblogs.com/wqhwe/p/5407468.html 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容 ...

  10. JavaScript程序员必备的5个debug技巧

    1. debugger:我以前也说过,你可以在JavaScript代码中加入一句debugger;来手工造成一个断点效果.需要带有条件的断点吗?你只需要用if语句包围它: if (somethingH ...