//! 数组解构 let arr = [1, 2, 3]; // 需求:将数组arr中的元素1,2,3分别取出来赋值给对应变量a,b,c // a = 1; b = 2; c =3 // var a = arr[0]; // var b = arr[1]; // var c = arr[2]; // console.log(a, b, c); // 使用数组解构 会更简单直接 // let [a, b, c] = arr; // let [c, b, a] = [4, 5, 6]; // console.log(a, b, c); // let a, c; // [a, c] = [1, 3]; let [, , third] = ['foo', 'bar', 'baz']; console.log(third); // "baz" let [, middle] = ['f', 'b', 'r']; console.log(middle); let [first] = [7, 8, 9]; console.log(first); // 7 let [x, , y] = [1, 2, 3]; console.log(x, y); let [head, ...tail] = [1, 2, 3, 4]; console.log(head, tail); // 在解构时,如果失败了,变量就会被赋值为undefined,如果...z解构,z确定就是数组,由于解构失败 因此就是空数组. 这里需要注意 ...z这种剩余解构方式,只能写在解构的尾部 let [f, s, ...z] = ['a']; console.log(f, s, z); //? [1, 2, 3, 4, 5, 6] let [a, , b] = [1, 2, 3, 4, 5, 6]; console.log(`output->a, b`, a, b);