a.shift()
возвращает первый элемент массива, который является [1, 2, 3]
.Таким образом, ваш код эквивалентен:
console.log(...[1, 2, 3])
Синтаксис распространения приводит к тому, что каждый элемент массива становится отдельным аргументом, поэтому это эквивалентно
console.log(1, 2, 3)
, который печатает каждое число отдельнона консоли.
Чтобы получить [1, 2, 3]
, вы не должны использовать ...
, просто напишите
console.log(a.shift())
Чтобы получить 1,2,3
, используйте
console.log(a.shift().join(','))