ES6 - rest parameters

Rest parameters

  • Tham số "còn lại" (rest parameters), là tham số đại diện cho những tham số không được khai báo.
  • Khi sử dụng khai báo đại diện bên trong một function thì khi gọi function sẽ không giới hạn giá trị truyền vào.
  • Đại diện này được ký hiệu bằng khai báo ...name (cẩn thận coi chừng nhầm lẫn với spread syntax).

Ví dụ về rest parameters

function number(num1, num2, ...numOther){
  console.log("x:", num1); 
  console.log("y:", num2);
  console.log("Other number:", numOther);
}
number("one", "two", "three", "four", "five", "six");
/* ouput: 
x: one
y: two
Other number: (4) ["three", "four", "five", "six"] */
  • Ta thấy function number() chỉ khai báo 2 tham số là num1num2 sẽ tương ứng với 2 giá trị truyền vào là onetwo, đo đó các giá trị truyền vào three four five six sẽ được tự động trỏ vào tham số ...numOther.
  • Việc sử dụng rest parameters rất tiện lợi khi bạn viết function mà không xác định được bao nhiêu tham số hình thành trong tương lai. Tuy nhiên việc sử dụng rest parameters cũng cần cẩn thận, vì dễ phát sinh giá trị truyền vào không cần thiết.

Ví dụ khác về rest parameters

function number(...numOther){
  console.log(number.length);
}
number() /* ouput: 0 */
number(7) /* ouput: 1 */
number(2, 4, 7) /* ouput: 3 */
  • Ứng với mỗi function với giá trị tham số được gọi, sẽ cho mỗi kết quả khác nhau.