This operator spread the content of 1 object into another.

Example: Using 3 points before arrays to list the elements inside

var cats = ["Tabby", "Siamese", "Persian"];
var dogs = ["Golden Retriever", "Pug", "Schnauzer"];

var animals = ["Whale", "Giraffe", cats, "Snake", dogs, "Coyote"];

console.log(animals);
animals = ["Whale", "Giraffe", ...cats, "Snake", ...dogs, "Coyote"];

console.log(animals);

Output:

[ 'Whale',
  'Giraffe',
  [ 'Tabby', 'Siamese', 'Persian' ],
  'Snake',
  [ 'Golden Retriever', 'Pug', 'Schnauzer' ],
  'Coyote' ]
[ 'Whale',
  'Giraffe',
  'Tabby',
  'Siamese',
  'Persian',
  'Snake',
  'Golden Retriever',
  'Pug',
  'Schnauzer',
  'Coyote' ]

Example 2:

const person = {
    name: 'Jimmy Smith',
    age: 40,
    hairColor: 'brown',
    eyeColor: 'blue',
  };
  
  const careerData = {
    name: 'Bob Smith',
    title: 'developer',
    company: 'ABC Software',
  };
  
  const updates = {
    name: 'James Smith',
  };
  
  const updatedPerson = {
    ...person,
    ...updates,
  };
  console.log(updatedPerson);
{ name: 'James Smith',
  age: 40,
  hairColor: 'brown',
  eyeColor: 'blue' }

Example 3:

const numbers = [1, 2, 3, 4, 5];
const newNumbers = [
    0,
    ...numbers,
    6,
];

console.log(newNumbers);
[ 0, 1, 2, 3, 4, 5, 6 ]

Sources: https://www.linkedin.com/learning/learning-functional-programming-with-javascript-es6-plus