ES6中首次引入的“解构赋值语法”允许将数组和对象中的值插入到不同的变量中。虽然它可能看起来很难,但实际上非常容易学习和使用。数组解构数组解构非常简单。您所要做的就是为数组中的每个值声明一个变量。您可以在数组中定义比索引更少的变量(即,如果您只想取消处理前几个值),跳过某些索引,甚至使用REST模式将所有剩余值放入一个新数组中。constnums=[3,6,9,12,15];const[k,//k=3l,//l=6,//Skipavalue(12)...n//n=[12,15]]=nums;对象解构对象解构与数组解构非常相似,主要区别在于对象中的每个键都可以通过名称来引用,从而创建一个同名变量。此外,您可以将键解构为新的变量名,只解构需要的键,然后使用rest模式将剩余的键解构为新的对象。constobj={a:1,b:2,c:3,d:4};const{a,//a=1c:d,//d=3...rest//rest={b:2,d:4}}=对象;嵌套解构嵌套对象和数组可以按照相同的规则进行解构。不同之处在于,嵌套的键或值可以直接解构为变量,而不必将父对象存储在变量本身中。constnested={a:{b:1,c:2},d:[1,2]};const{a:{b:f,//f=1...g//g={c:2}},...h//h={d:[1,2]}}=嵌套;高级解构由于数组的行为类似于对象,您可以通过使用索引作为对象解构分配语法中的键来为它们分配解构,以从数组中获取特定值。数组的其他属性(比如数组的长度)也可以通过这种方式获取。最后,如果解构后的值是未定义的,你还可以在解构过程中为变量定义默认值。constarr=[5,'b',4,'d','e','f',2];const{6:x,//x=20:y,//y=52:z,//z=4length:count,//count=7name='array',//name='array'(notpresentinar)...restData//restData={'1':'b','3':'d','4':'e','5':'f'}}=arr;
