Оператор распространения

представляет из себя троеточие ...

Объединение массива.

let planets1 = ["Mercury", "Venus", "Earth", "Mars"] let planets2 = ["Jupiter", "Saturn", "Uranus", "Neptune"] //объединение массивов let planetsOfSolarSystem = [...planets1,...planets2] console.log(planetsOfSolarSystem.join(' | ')) //Mercury | Venus | Earth | Mars | Jupiter | Saturn | Uranus | Neptune

Создание копии массива.

let planets1 = ["Mercury", "Venus", "Earth", "Mars"] let [first] = [...planets1] let [last] = [...planets1].reverse() console.log(first, last)//Mercury //Mars let [...copyPlanets1] = planets1 copyPlanets1[0]='Nibiru' console.log(copyPlanets1.join(' copy ')) //Nibiru copy Venus copy Earth copy Mars console.log(planets1.join(' original ')) //Mercury original Venus original Earth original Mars

Оператор распространения при деструктивном присваивании может использоваться для получения оставшихся элементов массива.

let planets2 = ["Jupiter", "Saturn", "Uranus", "Neptune"] let [first2, ...other] = planets2 console.log(first2)//Jupiter console.log(other.join(' other ')) //Saturn other Uranus other Neptune

Получение функцией аргументов в массив-параметр

function x (...options){ let [one,,,four] = options let [,two,fhree,] = options console.log(one, four, options.length)//Jupiter Neptune 4 console.log(two,fhree)//Saturn Uranus } x("Jupiter", "Saturn", "Uranus", "Neptune")

Применение оператора распространения к объектам

let object1={ p1:'Morning', p2:'Evening' } let day = 'day' let object2={ ...object1, day } console.log(object2) //Вывод: {p1: "Morning", p2: "Evening", day: "day"}
Объект object1 распространился в объект object2.