es6数组结构 Use array destructuring

image.png

上图是在开发过程中遇到的报错,才发现自己真的很少使用数组结构。回顾一下es6新的语法糖数组解构真的很香~

以往赋值:

let a = 1,
let b = 2,
let c = 3

const arr = [a,b,c]

使用数组解构赋值

const [a,b,c] = [1,2,3]

完全解构

解构赋值的写法本质上属于匹配模式只要等号左右模式相同,左边的变量既可以取到右边对应的值

举些例子:

let [a,[b,c] ] = [1,[2,3]]
a // 1 
b // 2
c // 3

let [,,d] = [1,2,3]
d // 3

let [e,,f] = [1,2,3]
e // 1
f // 3

let [g,...h] = [1,2,3,4]
g // 1
h // [2,3,4]

let [i,j,...k] = [1]
i // 1
j // undefined    如果解构不成功,值等于undfiend
k //[]

上面是完全解构,数组解构也支持不完全解构。

不完全解构

let [x,y] = [1,2,3]
x // 1
y // 2

解构赋值的默认值

let [a = true] = []
a // true

let [b =1, c = 1] = [2,undefined]
b // 2
c // 1

// es6内部使用严格===,undefined!==null 只有等于undefined 才会默认赋值
let [d=1] = [undefined]
d // 1
let [e = 1] = [null]
e // null

如果默认值是一个函数,那么如果有默认值是不会执行这个函数

let [a=fn()] = [1]
a // 1

默认值可以引用已经解构的其他变量

let [a,b=a] = [1,2]
a // 1 
b // 2
// d 作为默认值时还没有声名
let [c=d,d]= [1,2] // ReferenceError: d is not defined

参考:阮一峰ECMAScript 6 入门

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。