Even though they look the same, it does the opposite of the spread operator, which takes every item from an iterable and spreads them out into their individual values.
You can prefix a function's last parameter with `...` when you want to do something with the initial parameters and then treat all of the remaining parameters differently.
The `...` lets you gather up the rest of the arguments, if there are any, into an array.
### The difference between rest parameters and the arguments object
`arguments` is an array-like object, available inside functions, that contains the arguments passed to those functions. It's called "array-like" because it doesn't have all of an array's built in methods, such as `.forEach()` and `.map()`.
The rest parameters are an array, with all of the array methods included.