今天,我们来讲一个新的概念,叫做解构赋值。那么在ES6中,什么是解构赋值呢?我们先来给它下个定义。 在ES6中,允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。满足解构赋值的前提是:1.等号两边结构一样;2.声明和赋值不能分开;3.右边是具体的“东西”。 在ES5的时候,我们想要对a,b,c三个变量赋值,一般来说都是var三个变量,写三行赋值。有了解构,它可以变成这个样子: let [a,b,c] = [1,2,3] console.log(a);//1 console.log(b);//2 console.log(c);//3 当然,以下的写法也是允许的: let [[arr],str] = [["arr"],"str"]; let [ , , third] = ["foo", "bar", "baz"]; console.log(third) // "baz" let [x, , y] = [1, 2, 3]; console.log(x) // 1 console.log(y) // 3 let [head, ...tail] = [1, 2, 3, 4]; console.log(head) // 1 console.log(tail) // [2, 3, 4] 本质上,这种写法属于“模式匹配”,只要等号两边的模式相同