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. [APIO2014]序列分割 --- 斜率优化DP

    [APIO2014]序列分割 题目大意: 你正在玩一个关于长度为\(n\)的非负整数序列的游戏.这个游戏中你需要把序列分成\(k+1\)个非空的块.为了得到\(k+1\)块,你需要重复下面的操作\(k ...

  2. [CCC 2018] 平衡树

    题面在这里! 根据题目描述就可以直接模拟出一个暴力. 如果把前 n^(1/2) 的树的方案数先一遍 O(n^(3/4)) 暴力预处理出来(其实复杂度并到不了这个级别),然后把n带进来直接暴力算就行了. ...

  3. [CC-ANUCBC]Cards, bags and coins

    [CC-ANUCBC]Cards, bags and coins 题目大意: 给你\(n(n\le10^5)\)个数,\(q(q\le30)\)次询问,问从中选取若干个数使得这些数之和为\(m(m\l ...

  4. Spring Cloud项目启动脚本

    #!/bin/bash source /etc/profile cd `dirname $0` BIN_DIR=`pwd` echo "$BIN_DIR"#项目名称 SERVER_ ...

  5. 数组中找出最小的K个数

    题目 给出一个数组,找出K个最小的值 例如给出数组{5,2,4,3,1},给定K值3,则输出结果为{2,3,1} 程序 先给出第一个版本的程序 public static void printKNum ...

  6. python函数 divmod

    divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: a,b可以为数字(包括复数) from 2. Add ...

  7. SecureCRT也能和Xshell一样批量导入主机

    在Xshell可以像这样一个文件批量导入主机: https://blog.netsarang.com/91/importing-csv-formatted-host-information-to-xs ...

  8. 在Mac系统上安装Tomcat

    到 apache官方主页 下载 Mac 版本的完整 .gz文件包.解压拷贝到 /Library目录下.   1.Mac中 Finder打开 Library的方法 新建 Finder窗口   按下 sh ...

  9. Spring JavaConfig @Import实例

    一般来说, 需要按模块或类别 分割Spring XML bean文件 成多个小文件, 使事情更容易维护和模块化. 例如, <beans xmlns="http://www.spring ...

  10. uboot烧写命令--yaffs、jiffs和ubifs

    如果要烧写的镜像的格式是yaffs2或者yaffs格式的,那么在往Nand Flash中烧写该镜像是必须采用nand write.yaffs,而不能采用nand write: nand write.y ...