Cơ BảnJavaScript iconJavaScript

Spread operator (...) và rest parameters (...) khác nhau như thế nào?

Spread mở rộng iterable thành từng phần tử (dùng trong function calls, array literals, object literals).

  • Rest thu thập nhiều phần tử thành array (dùng trong function parameters).
  • Cú pháp giống nhau nhưng ngữ cảnh ngược nhau.
javascript
// Spread: "mở ra"
const arr = [1, 2, 3];
console.log(Math.max(...arr)); // 3
const merged = [...arr1, ...arr2];
const copy = { ...obj, extra: true };

// Rest: "thu lại"
function sum(first, ...rest) { // rest là mảng
  return first + rest.reduce((a, b) => a + b, 0);
}

Xem toàn bộ JavaScript cùng filter theo level & chủ đề con.

Mở danh sách JavaScript