ES6解构赋值

1、数组的解构赋值

//模式匹配
let [a,b,c] = [1,2,3];

//嵌套数组
let [foo,[[bar],baz]] = [1,[[2],3]];
let [,,third] = ['foo','bar','baz']
let [x,,y] = [1,2,3]
let [head,...tail] = [1,2,3,4]
let [x,y,...z] = ['a']

//解构不成功,变量的值就等于undefined
let [foo] = []
let [bar,foo] = [1]

//不完全解构
let [x,y] = [1,2,3]
let [a,[b],d] = [1,[2,3],4]

//等号右边不是可遍历的结构,不具备Iterator接口,报TypeError错误
let [foo]=1

//Set结构,也可以使用数组的解构赋值
let [x,y,z] = new Set(['a','b','c'])

//允许指定默认值。
//使用严格相等运算符,只有严格等于undefined时,默认值才会生效。
let [foo=true] = []
//默认值是表达式时,是惰性求值,只有用到的时候才会求值。
function f(){
  console.log('aaa')
}
let [x=f()] = [1]
//默认值可以引用解构赋值的其他变量,但该变量必须已经声明。
let [x=1,y=x] = []
let [x=y,y=1] = [] //报错
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ES6的解构赋值是一种表达式,利用这种新语法,可以直接从数组或者对象中快速提取值 赋值给不同的变量,利用这种写法的...
    圆梦人生阅读 1,059评论 0 1
  • 解构赋值,也称“模式匹配”,即赋值的左右两边模式相同,则等号右边的值赋给左边的变量。 解构赋值 适用 let va...
    jingzizi阅读 3,147评论 2 0
  • 基本用法可以从数组中提取值,按照对应的位置,对变量赋值 嵌套数组进行结构 不完全解构即等号左边的模式只匹配一部分等...
    _by_w_z阅读 294评论 0 2
  • 大风起兮云飞扬 2018年8月21日,发生了一起高铁拒不“让座”事件。 事情的情势,一名男子,坐在本应该属于女乘客...
    橘猫家的露杰阅读 1,176评论 0 0
  • 今天盯最后一天,下午去见见老公,他最近忙的不可开交,这让无聊的我很失落。最近电话也少的可怜,打电话没话说的时候越来...
    艳云阅读 319评论 0 0