Spread và rest
Bài học 5 trên 9 trong khóa học Những phần khó trong JavaScript hiện đại (ES6+) của Coddy.
Trong Javascript, toán tử
<strong>...</strong>(ba dấu chấm) có thể dùng cho hai mục đích!
Trải rộng
Có thể dùng <strong>...</strong> để truyền các phần tử của một mảng vào hàm dưới dạng các tham số riêng biệt.
let array1 = [1,2,3];
Math.max(...array1); // giống hệt Math.max(1,2,3)Toán tử này cũng dùng để sao chép một mảng vào một mảng khác hoặc sao chép các thuộc tính từ một đối tượng literal sang một đối tượng literal khác.
let arr1 = [1,2,3];
let arr2 = [6,7,8];
let final = [...arr1, 4, 5, ...arr2]; // [1,2,3,4,5,6,7,8]
let obj1 = {name:"Shubham"};
let obj2= {work: "Software Development"};
let finalObj = {...name,...work}; // {name:"Shubham",work:"Software Development"}Thu thập phần còn lại
Có thể dùng <strong>...</strong> để thu thập tất cả các tham số còn lại của một hàm vào một mảng.
function sum(a,b,...rest){
console.log("rest parameters : ", rest);
}
sum(1,2,3,4,5,6) //các tham số còn lại: [3,4,5,6]Các tham số còn lại luôn phải nằm cuối cùng. function sum(a, ...rest , b){ } sẽ không hoạt động.
Thử thách
DễViết một hàm để sao chép các thuộc tính từ cả obj1 & obj2 và trả về đối tượng mới có các thuộc tính của cả hai đối tượng.
Tự làm thử
function combineObjects(obj1, obj2) {
// Viết code ở đây
}Tất cả bài học trong Những phần khó trong JavaScript hiện đại (ES6+)
2Bắt đầu khám phá
Phạm vi khối lệnh, let và constHàm mũi tênSpread và restVòng lặp for...ofLớpPromiseBất đồng bộ và awaitTự luyện tập: Trình biên dịch JavaScript online