从数组和对象中提取值,对变量进行赋值,这被称为解构

let [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3

let [ , , third] = ["foo", "bar", "baz"];
third // "baz"

let [x, , y] = [1, 2, 3];
x // 1
y // 3

let [head, ...tail] = [1, 2, 3, 4];
head // 1
tail // [2, 3, 4]

let [x, y, ...z] = ['a'];
x // "a"
y // undefined  // 如果解构不成功,变量的值就等于undefined
z // []

function* fibs() {let a = 0;let b = 1;while (true) {yield a;[a, b] = [b, a + b];}
}let [first, second, third, fourth, fifth, sixth] = fibs();
// 0,1,1,2,3,5

let [x, y, z] = new Set(['a', 'b', 'c']); // set,不重复的数组
x // "a"

允许指定默认值:  当一个数组成员严格等于undefined,默认值才会生效

let [foo = true] = []; // foo // true
let [x, y = 'b'] = ['a']; // x='a', y='b'
let [x, y = 'b'] = ['a', undefined]; // x='a', y='b'
let [x = 1] = [undefined]; // x // 1
let [x = 1] = [null]; //x // null

转载于:https://www.cnblogs.com/avidya/p/10636664.html

es6-变量的解构赋值相关推荐

  1. ES6变量的解构赋值--对象篇

    目录 使用方式 普通形式 嵌套结构 使用默认值 注意事项 上一篇我们讲解了数组的解构赋值,解构还可以用于对象.字符串等等,这里我们来讲解对象的解构赋值. ES6变量的解构赋值--数组_zxn20012 ...

  2. (34)2021-02-24(ES6变量的解构赋值)

    ES6变量的解构赋值 一. 变量的解构赋值 1.什么是解构 2.数组解构赋值 不完全解构 3.对象解构赋值 方法解构 注意点 4.字符串解构 5.函数参数的解构赋值 6.用途 6.1 交换变量的值 6 ...

  3. ES6——变量的解构赋值

    ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构. let [a, b] = [1, 2]; let {c, d} = {c: 3, d: 4};console.log(a ...

  4. es6—变量的解构赋值

    数组的解构赋值 /* 1.变量的解构赋值: * 数组的元素是按次序排列的,变量的取值由它的位置决定: * 从数组和对象中提取值,对变量进行赋值,这被称为解构; * 属于"模式匹配" ...

  5. es6变量的解构赋值

    https://note.youdao.com/web/#/file/WEB0795aa69a66933c323f06127c9127f4d/note/WEBb0bbf2a9471ea54f2cb0f ...

  6. 【ES6】变量的解构赋值

    [ES6]变量的解构赋值 一.什么叫解构赋值? 二.解构赋值有哪些分类?写法? 1)对数组的解构赋值 2)对对象的解构赋值 3)对字符串的解构赋值 4)对数值和布尔值的解构赋值 5)对函数参数的解构赋 ...

  7. ES6的新特性(3)——变量的解构赋值

    变量的解构赋值 数组的解构赋值 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). let a = 1; let b = 2; le ...

  8. Vue2.x—理解vuex核心概念action(使用到ES6的变量的解构赋值)

    Action Action 类似于 mutation,不同在于: Action 提交的是 mutation,而不是直接变更状态. Action 可以包含任意异步操作. 让我们来注册一个简单的 acti ...

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

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

  10. [ES6] 细化ES6之 -- 变量的解构赋值

    变量的解构赋值 解构赋值是什么 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值 var/let [变量名称1,变量名称2,...] = 数组或对象 本质上,这种写法属于"模式 ...

最新文章

  1. 圆桌讨论:Cloud 2.0时代的工业互联网与智能制造 1
  2. java linux res很高_Linux下Java进程RES是1.6G,但是jmap里用到的才五百多M,剩下的1.1G左右是去哪了?...
  3. C++ transform 浅析
  4. bzoj 3456: 城市规划【NTT+多项式求逆】
  5. 【python数据挖掘课程】二十四.KMeans文本聚类分析互动百科语料
  6. 查看Chome浏览器中已保存的密码
  7. 控制文件夹递归深度_TensorFlow、Pytorch和Keras的样例资源(深度学习初学者必须收藏)...
  8. linux 修改ramdisk内容,在Linux下使用RamDisk
  9. mysql数据库无法显示中文_mysql数据库不能显示中文是怎么回事呢?
  10. Ext2 中如何换行 布局?
  11. PHP数据库操作:从MySQL原生API到PDO
  12. 揭秘Spring——《Spring 揭秘》读书笔记纲要
  13. CCS以及DSP入门帖
  14. esp32摄像显示时间_ESP32彩屏显示入门:我要五彩斑斓的黑,还有五光十色的白
  15. 烂土豆搭配令牌窃取提权dll劫持搭配令牌窃取提权不带引号服务路径问题提权不安全的服务权限配置提权
  16. matlab学习心得(一)
  17. linux中ll排序命令,ll命令
  18. SEO新手一分钟入门教程
  19. 首支完全由 AI 创作的歌曲《未来之歌》发布!对于未来,你方了吗?
  20. Latex系列教程 汇总

热门文章

  1. eclipse中如何配置tomcat
  2. vsftp 无法启动,500 OOPS: bad bool value in config file for: anonymous_enable
  3. 3013-04-13 腾讯笔试
  4. 仿百度文库方案[openoffice.org 3+swftools+flexpaper](八) 之 常见问题集FAQ
  5. 分清DB_NAME、INSTANCE_NAME、ORACLE_SID、SERVICE_NAME、DB_DOMAIN和GLOBAL_DB_NAME
  6. applet实现大文件ftp上传(三)
  7. 前端跨域通信的几种方式
  8. koa --- nunjucks
  9. Vue项目代码改进(三)—— Cookie、LocalStorage和SessionStorage的使用
  10. initialize方法与load方法比较