We can extract multiple values from an object or array and assign them to variables simultaneously.
Destructuring function arguments
We can also nest and rename destructured variables and supply default values.
The rest syntax
... collects remaining values. Rest is roughly the inverse of spread.