Skip to content

Latest commit

 

History

History
45 lines (32 loc) · 1009 Bytes

10.1.md

File metadata and controls

45 lines (32 loc) · 1009 Bytes

10.1 概览

在接收数据的地方(比如赋值的左边),解构使你使用模式去获取部分数据。

下面的代码是解构的一个例子:

let obj = { first: 'Jane', last: 'Doe' };
let { first: f, last: l } = obj; // (A)
    // f = 'Jane'; l = 'Doe'

在行 A 解构了 obj :通过左边的模式,运用赋值操作符(=)从里面获取数据,并将数据赋值给变量 fl 。这些变量事先自动声明好,因为该行以 let 开始。

也可以解构数组:

let [x, y] = ['a', 'b']; // x = 'a'; y = 'b'

解构可以用于下列情形:

// Variable declarations:
let [x] = ['a'];
const [x] = ['a'];
var [x] = ['a'];

// Assignments:
[x] = ['a'];

// Parameter definitions:
function f([x]) { ··· }
f(['a']);

也可以在一个 for-of 循环中解构:

// Handled like a variable declaration:
for (let [k,v] of arr.entries()) ···

// Handled like an assignment
for ({name: n, age: a} of arr) ···