Rest operator là gì?

Noun Programming
Toán tử rest

Trong bài viết này, chúng ta sẽ thảo luận về cách thức hoạt động của phần toán tử rest với các hàm JavaScript và destructuring assignment. Nhưng trước tiên hãy xem cú pháp của toán tử rest (rest operator) trông như thế nào.

...yourValues

Ba dấu chấm (...) trong đoạn mã trên tượng trưng cho toán tử rest (rest operator). Để hiểu rõ hơn về cú pháp, hãy xem toán tử rest (rest operator) hoạt động như thế nào với các hàm JavaScript.


// Define a function with two regular parameters and one rest parameter:
function myBio(firstName, lastName, ...otherInfo) { 
  return otherInfo;
}

// Invoke myBio function while passing five arguments to its parameters:
myBio("Oluwatobi", "Sofela", "CodeSweetly", "Web Developer", "Male");

// The invocation above will return:
["CodeSweetly", "Web Developer", "Male"]

Toán tử rest (...) hướng dẫn máy tính đặt phần còn lại của một số đối số (argument) do người dùng cung cấp cụ thể vào một mảng (array). Sau đó, gán mảng đó cho tham số otherInfo.

Trong đoạn mã (snippet) trên, hãy lưu ý rằng lời gọi hàm myBio đã truyền năm đối số cho hàm. Nói cách khác, "Oluwatobi" và "Sofela" được gán cho các tham số firstName và lastName. Đồng thời, toán tử rest đã thêm các đối số còn lại ("CodeSweetly", "Web Developer" và "Male") vào một mảng và gán mảng đó cho tham số otherInfo. Do đó, hàm myBio() đã trả về chính xác ["CodeSweetly", "Web Developer", "Male"] dưới dạng nội dung của tham số phần rest (rest parameter) otherInfo.

Toán tử còn lại thường được sử dụng làm tiền tố (prefix) của biến cuối cùng của destructuring assignment'.


// Define a destructuring array with two regular variables and one rest variable:
const [firstName, lastName, ...otherInfo] = [
  "Oluwatobi", "Sofela", "CodeSweetly", "Web Developer", "Male"
];

// Invoke the otherInfo variable:
console.log(otherInfo); 

// The invocation above will return:
["CodeSweetly", "Web Developer", "Male"]

Toán tử rest (...) hướng dẫn máy tính đặt phần còn lại của các giá trị do người dùng cung cấp vào một mảng. Sau đó, gán mảng đó cho biến otherInfo.

Learning English Everyday