Open Mardanjan opened 4 years ago
var map = Object.create(null)
map.count =1
if (map.count) {
//要执行的代码
}
这个实例中有一些模糊的地方,比如我们应该怎么使用map.count?在if语句中,我们检查的是map.count存在?还是map.count会否为真值,在大型软件应用中,一旦发生此类问题,将会难以定位以及调试,从而促使es6在语言中加入set集合与map结合这两种特性。
es6中新增的set类型时一种有序列表,其中包含有一些相互独立的非重复值,通过set集合可以快速访问其中的数据,更有效的跟踪各种离散值。
解构赋值
从es6开始,JavaScript引入了解构赋值,可以同时对一组变量进行赋值。 现在,在es6中,可以使用解构赋值,直接对多个变量同时赋值:
对数组元素进行解构赋值的时候,多个变量要用[...]括起来
如果数组本身还有嵌套,可以通过下面的形式进行解构赋值,注意嵌套层次和位置要保持一致:
如果需要从一个对象中取出若干属性,也可以使用解构赋值,便于快速获取对象的制定属性:
对一个对象进行解构赋值时,同样可以直接对嵌套的对象属性进行赋值,只要保证对应的层次是一致的。
使用解构赋值对对象属性进行赋值时,如果对应的对象属性不存在,变量将赋值为undefined,这和引用一个不存在的属性获取undefined是一致的,可以用以下方法获取:
解构赋值还可以使用默认值
解构赋值在很多时候可以大大简化代码,例如交换两个变量的值,可以不用临时变量就可以交换
[x,y] = [y, x]
参考:https://www.liaoxuefeng.com/wiki/1022910821149312/1023021187855808