前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES6 学习笔记之变量的解构赋值

ES6 学习笔记之变量的解构赋值

作者头像
我与梦想有个约会
发布2020-01-05 16:29:54
3560
发布2020-01-05 16:29:54
举报
文章被收录于专栏:jiajia_dengjiajia_deng

ES6 中增加了几种对变量初始化的方式,从改进来看,个人觉得可以大大的增加编码的效率。带相对语法可能就晦涩一些了。但总归熟能生巧,多用就不会那么容易犯错了。

变量的解构赋值

ES5 中给多个变量赋值写法如下:

代码语言:javascript
复制
let a = 1;
let b = 2;
let c = 3;

而 ES6 中则一句话搞定:

代码语言:javascript
复制
let [a, b, c] = [1, 2, 3];

摘抄书中的一句话“ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。”,更多对于变量的解构赋值请参考书中的详细介绍,我个人觉得平时可能用不到那么变态的用法。

解构赋值默认值

代码语言:javascript
复制
let [foo = true] = [];
foo // true

let [x, y = 'b'] = ['a']; // x='a', y='b'
let [x, y = 'b'] = ['a', undefined]; // x='a', y='b'

通过上面的代码可以看出,如果赋值时不指定具体内容,那么会使用我们准备好的默认值,这与其他一些语言中的函数默认参数差不多。更多细节请参考书中介绍。

对象的解构赋值

代码语言:javascript
复制
let { bar, foo } = { foo: "aaa", bar: "bbb" };
foo // "aaa"
bar // "bbb"

let { baz } = { foo: "aaa", bar: "bbb" };
baz // undefined

对象的解构赋值相对严格一些,它不是按顺序解析的,而是按成员名称匹配解析的。其他字符串、布尔、函数参数都具有解构赋值的特性。且均无明显差异。书中介绍了一些解构赋值的常用应用场景,比如下面这个案例,通过解构赋值就很方便的遍历了 map 中的内容。

代码语言:javascript
复制
var map = new Map();
map.set('first', 'Hello');
map.set('second', 'World');

for (let [key, value] of map) {
  console.log(key + ' is ' + value);
}

相关

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年2月20日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 变量的解构赋值
  • 解构赋值默认值
  • 对象的解构赋值
    • 相关
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档