Toán tử phân rã

Destructuring Assignment

Destructuring Assignment là một loại toán tử gán, nó sẽ phân rã đối tượng gán thành các biến.

Toán tử gán phân rã object

Sử dụng cú pháp rút gọn với object:

1
2
3
var { a, b } = { a: 1, b: "Bill" };
console.log(a); // 1
console.log(b); // "Bill"

Sử dụng cú pháp chuẩn với object lồng nhau:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
var {
  name: nameVar,
  desc: {
    age: ageVar
  }
} = {
  name: "Bill",
  desc: {
    age: 30
  }
};
console.log(nameVar); // Bill
console.log(ageVar); // 30

Toán tử phân rã array

Ví dụ phân rã array:

1
2
3
var [ a, b ] = ["Bill", "Gates"];
console.log(a); // Bill
console.log(b); // Gates

Toán tử phân rã object và array đều có thể sử dụng với giá trị mặc định của biến.

1
2
3
var [ a, b = "Gates" ] = ["Bill"];
console.log(a); // Bill
console.log(b); // Gates

Sử dụng với tham số của hàm

Có thể sử dụng phân rã object hay array ngay trên tham số của hàm.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
// phân rã array
function f([ name, val ]) {
  console.log(name, val); // Bill, Gates
}
f (["Bill", "Gates"]);

// phân rã object
function g({ name, val }) {
  console.log(name, val); // bar, 42
}
g({ name: "bar", val: 42 });