Оператор расширения — spread
Spread оператор (оператор расширения) берет каждый отдельный элемент итерируемого объекта и распаковывает его в другой итерируемый объект.
// в функциях
function foo(x, y, z) {
console.log(x, y, z); // 1 2 3
}
const arr = [1, 2, 3];
foo(...arr); // 1 2 3
// объединение объектов
const part1 = { id: 100, name: 'Aleksandr' }
const part2 = { id: 100, password: '12345!' }
const user = { ...part1, ...part2 }
//=> { id: 100, name: 'Aleksandr', password: '12345!' }
Остаточные параметры — rest
Оператор rest забирает каждый элемент из массива и создает из них новый массив.
function bar(...args) {
console.log(args);
}
bar(1, 2, 3, 4, 5); // [1, 2, 3, 4, 5]
// при деструктуризации
const auto= ['Mersedes', 'BMW', 'Audi'];
const [mers, ...other] = auto;
console.log(mers); // Mersedes
console.log(other); // [ 'BMW', 'Audi' ]