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] = [] //报错

    推荐阅读