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第一节变量(let|(二)ES6第一节变量(let,const)
- 六步搭建ES6语法环境
- Spring源码解析_属性赋值
- 前端|web前端dya07--ES6高级语法的转化&render&vue与webpack&export
- arrow|arrow function
- es6官方文档
- 如何理解es6中的class,以及class中的constructor函数
- 红楼别解
- 最简洁的代码实现数组去重
- Node.js(一)