...
- spread/rest оператор.
Оператор
spread
раскрывает массив в список аргументов, но также например можно использовать для расширения массивов.
const arr = [1, 2, 3]
func.apply(...arr) // [1, 2, 3] -> 1, 2, 3
const arr = [1, 2, 3]
const arr2 = [...arr, 4, 5]
По сути он превращает массив в последовательность через запятую.
rest
наоборот собирает аргументы в массив.
function func(...args) {
for (let arg of args) console.log(arg)
}
Кстати, это работает и для объектов:
const obj = {a: 10, b: 20}
const obj2 = {...obj} // {a: 10, b: 20}