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ànum1
vànum2
sẽ tương ứng với 2 giá trị truyền vào làone
vàtwo
, đo đó các giá trị truyền vàothree
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.