...
(ba dấu chấm trong Javascript) được gọi là Toán tử trải rộng hoặc Toán tử trải rộng. Điều này cho phép một iterable như một biểu thức mảng hoặc chuỗi được mở rộng hoặc một đối tượng biểu thức được mở rộng bất cứ nơi nào được đặt. Điều này không cụ thể đối với React. Nó là một toán tử Javascript.
Tất cả những câu trả lời ở đây đều hữu ích, nhưng tôi muốn liệt kê các trường hợp sử dụng thực tế được sử dụng nhiều nhất của Cú pháp lây lan (Toán tử trải rộng).
1. Mảng kết hợp (Mảng liên kết)
Có nhiều cách khác nhau để kết hợp các mảng , nhưng toán tử trải rộng cho phép bạn đặt nó ở bất kỳ vị trí nào trong một mảng. Nếu bạn muốn kết hợp hai mảng và đặt các phần tử tại bất kỳ điểm nào trong mảng, bạn có thể làm như sau:
var arr1 = ['two', 'three'];
var arr2 = ['one', ...arr1, 'four', 'five'];
// arr2 = ["one", "two", "three", "four", "five"]
2. Sao chép mảng
Khi chúng tôi muốn có một bản sao của một mảng, chúng tôi đã từng sử dụng phương thức Array.prototypr.slice () . Nhưng, bạn có thể làm tương tự với toán tử trải.
var arr = [1,2,3];
var arr2 = [...arr];
// arr2 = [1,2,3]
3. Chức năng gọi mà không áp dụng
Trong ES5, để truyền một mảng gồm hai số cho doStuff()
hàm, bạn thường sử dụng phương thức Function.prototype.apply () như sau:
function doStuff (x, y, z) { }
var args = [0, 1, 2];
// Call the function, passing args
doStuff.apply(null, args);
Tuy nhiên, bằng cách sử dụng toán tử trải, bạn có thể truyền một mảng vào hàm.
doStuff(...args);
4. Mảng phá hủy
Bạn có thể sử dụng hàm hủy và toán tử còn lại để trích xuất thông tin thành các biến như bạn muốn:
let { x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
console.log(x); // 1
console.log(y); // 2
console.log(z); // { a: 3, b: 4 }
5. Các đối số chức năng như các tham số nghỉ ngơi
ES6 cũng có ba dấu chấm (...) là tham số phần còn lại thu thập tất cả các đối số còn lại của hàm thành một mảng.
function f(a, b, ...args) {
console.log(args);
}
f(1,2,3,4,5);
// [ 3, 4, 5 ]
6. Sử dụng các hàm toán học
Bất kỳ hàm nào trong đó lây lan được sử dụng làm đối số có thể được sử dụng bởi các hàm có thể chấp nhận bất kỳ số lượng đối số.
let numbers = [9, 4, 7, 1];
Math.min(...numbers); // 1
7. Kết hợp hai đối tượng
Bạn có thể sử dụng toán tử trải để kết hợp hai đối tượng. Đây là một cách dễ dàng và sạch sẽ hơn để làm điều đó.
var carType = {
model: 'Toyota',
yom: '1995'
};
var carFuel = 'Petrol';
var carData = {
...carType,
carFuel
}
console.log(carData);
// {
// model: 'Toyota',
// yom: '1995',
// carFuel = 'Petrol'
// }
8. Tách một chuỗi thành các ký tự riêng biệt
Bạn có thể sử dụng toán tử trải rộng để trải một chuỗi thành các ký tự riêng biệt.
let chars = ['A', ...'BC', 'D'];
console.log(chars); // ["A", "B", "C", "D"]
Bạn có thể nghĩ ra nhiều cách hơn để sử dụng Toán tử trải rộng. Những gì tôi đã liệt kê ở đây là các trường hợp sử dụng phổ biến của nó.